<?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=Kjoonlee</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=Kjoonlee"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/Kjoonlee"/>
	<updated>2026-04-30T12:10:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Foobar2000_Logo.png&amp;diff=18369</id>
		<title>File:Foobar2000 Logo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Foobar2000_Logo.png&amp;diff=18369"/>
		<updated>2008-04-15T17:00:01Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: not GFDL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This logo was uploaded by a third party, under a fair-use claim.&lt;br /&gt;
&lt;br /&gt;
Use of this logo is not covered by the GFDL.&lt;br /&gt;
&lt;br /&gt;
The original logo by picmixer is being used to illustrate the program on the [[foobar2000:foobar2000]] page.&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=18081</id>
		<title>User:Kjoonlee/monobook.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=18081"/>
		<updated>2008-01-02T22:36:23Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// http://en.wikipedia.org/wiki/User%3ALupin/popups.js&lt;br /&gt;
&lt;br /&gt;
function siteArticlePath(){ return &#039;index.php?title=&#039;; }&lt;br /&gt;
function siteBotInterfacePath(){ return &#039;&#039;; }&lt;br /&gt;
&lt;br /&gt;
document.write(&#039;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&#039; &lt;br /&gt;
             + &#039;http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&#039; &lt;br /&gt;
             + &#039;&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
popupDelay=0.7;&lt;br /&gt;
popupHideDelay=0.2;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=18080</id>
		<title>User:Kjoonlee/monobook.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=18080"/>
		<updated>2008-01-02T22:33:53Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: try fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// http://en.wikipedia.org/wiki/User%3ALupin/popups.js&lt;br /&gt;
&lt;br /&gt;
function siteArticlePath(){ return &#039;index.php&#039;; }&lt;br /&gt;
function siteBotInterfacePath(){ return &#039;&#039;; }&lt;br /&gt;
&lt;br /&gt;
document.write(&#039;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&#039; &lt;br /&gt;
             + &#039;http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&#039; &lt;br /&gt;
             + &#039;&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
popupDelay=0.7;&lt;br /&gt;
popupHideDelay=0.2;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=16230</id>
		<title>User:Kjoonlee/monobook.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=16230"/>
		<updated>2006-12-27T16:39:09Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: mention URL instead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// http://en.wikipedia.org/wiki/User%3ALupin/popups.js&lt;br /&gt;
&lt;br /&gt;
document.write(&#039;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&#039; &lt;br /&gt;
             + &#039;http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&#039; &lt;br /&gt;
             + &#039;&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
popupDelay=0.7;&lt;br /&gt;
popupHideDelay=0.2;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=16229</id>
		<title>User:Kjoonlee/monobook.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=16229"/>
		<updated>2006-12-27T16:38:23Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// [[:w:en:User:Lupin/popups.js]]&lt;br /&gt;
&lt;br /&gt;
document.write(&#039;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&#039; &lt;br /&gt;
             + &#039;http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&#039; &lt;br /&gt;
             + &#039;&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
popupDelay=0.7;&lt;br /&gt;
popupHideDelay=0.2;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=16228</id>
		<title>User:Kjoonlee/monobook.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee/monobook.js&amp;diff=16228"/>
		<updated>2006-12-27T16:37:50Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: popups tool&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// [[User:Lupin/popups.js]]&lt;br /&gt;
&lt;br /&gt;
document.write(&#039;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;&#039; &lt;br /&gt;
             + &#039;http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&#039; &lt;br /&gt;
             + &#039;&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;amp;dontcountme=s&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
popupDelay=0.7;&lt;br /&gt;
popupHideDelay=0.2;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Kjoonlee&amp;diff=16227</id>
		<title>User talk:Kjoonlee</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Kjoonlee&amp;diff=16227"/>
		<updated>2006-12-27T16:36:57Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: notice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;usermessage plainlinks&amp;quot;&amp;gt;Please use a [http://wiki.hydrogenaudio.org/index.php?title=User_talk:Kjoonlee&amp;amp;action=edit&amp;amp;section=new new section] or edit a relevant section. Thank you.&amp;lt;/div&amp;gt;&lt;br /&gt;
This page will be archived when the table of contents fills up my view. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 10:36, 27 December 2006 (CST)&lt;br /&gt;
==Hi==&lt;br /&gt;
Hi Kjoonlee!&lt;br /&gt;
&lt;br /&gt;
Um, nothing important. I just have an ... irrational dislike of &amp;lt;u style=&amp;quot;color:red&amp;quot;&amp;gt;redlinks&amp;lt;/u&amp;gt; in the [[Special:Wantedpages|Wanted Pages]] specialthing. Heh. {{smiley|)}} --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 16:37, 2 October 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=16178</id>
		<title>Gapless playback</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=16178"/>
		<updated>2006-12-22T00:17:43Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Alternative solutions */ pseudo-gapless&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gapless playback&#039;&#039;&#039; is the seamless playback of sequential audio tracks in digital audio formats. It allows live music or consecutive tracks to be heard exactly as they are mastered, without gaps between tracks.&lt;br /&gt;
&lt;br /&gt;
==Why gaps occur==&lt;br /&gt;
There are two main reasons why gaps occur during playback.&lt;br /&gt;
&lt;br /&gt;
===Compression scheme artifacts===&lt;br /&gt;
Most lossy audio compression schemes add a small amount of silence to the beginning of a track. One reason that this happens is because many such schemes involve a time/frequency domain transform (such as an [[MDCT]]) which can introduce gaps called encoder delay.  These gaps can be enlarged at decode time when a reverse-MDCT is performed, because the reverse transform will also introduce gaps (decoder delay) of its own.  Another factor is the fact that transforms act on data in units of fixed-size blocks. In order for the audio signal to be encoded in its entirety, small amounts of silence are appended to the input before the transform.  If the amount of padded silence is not accounted for, the padding will be decoded together with the audio data, also introducing gaps between tracks. Due to the introduction of such gaps, the playtime of the audio data is often slightly increased. (See [http://lame.sourceforge.net/tech-FAQ.txt LAME Technical FAQ])&lt;br /&gt;
&lt;br /&gt;
This issue is technical but also standards-related.  The popular [[MP3]] standard, for example, defines no way to record the amount of delay or padding for later removal.  Also, the encoder delay may vary from encoder to encoder, making automatic removal difficult. (See [http://mp3decoders.mp3-tech.org/decoders_lame.html lame v3.81 and 3.87 beta mp3 decoding quality test results] for a table of encoder delay values.) Even if two tracks are decompressed and merged into a single track, a gap will usually remain between them.  More recent compressed audio formats have been designed to address this problem, and can therefore produce gapless audio if played back correctly.&lt;br /&gt;
&lt;br /&gt;
===Poor design===&lt;br /&gt;
Even when the audio file itself does not contain undesirable gaps, software/firmware/hardware design often adds gaps during playback. In some cases, software closes and re-opens the output stream when switching tracks, causing the hardware to create a very short &amp;quot;click&amp;quot;. This problem is solved in more sophisticated designs of gapless playback.&lt;br /&gt;
&lt;br /&gt;
A different design problem relates to software/firmware/hardware which are not ready to seamlessly move to the next track by the time the current track is complete. In this scenario, the listener is left waiting in silence as the player locates the next file, reads it, decodes the first blocks if necessary and then starts loading the buffer for playback. The gap can be as much as half a second, or even more — very noticeable in &amp;quot;continuous&amp;quot; music such as certain classical or dance genres. &lt;br /&gt;
&lt;br /&gt;
Many older audio players on personal computers do not implement the required buffering to play gapless audio.  Some of these rely on third-party gapless audio plug-ins to buffer output.  Some newer players and newer versions of old players now support gapless playback directly.&lt;br /&gt;
&lt;br /&gt;
==Testing for gapless==&lt;br /&gt;
The best way is by using &#039;&#039;Test Samples&#039;&#039; listed at the end of this page.&lt;br /&gt;
&lt;br /&gt;
Some people attempts to detect gapless by generating pure tones, and encoding them into a lossy format. This is not recommended for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. Unless the first tone ends at 0 level and the second tone starts at 0 level, a glitch will be heard during transition.&lt;br /&gt;
2. Some decoders chop off the end and/or the start of the audio data. So the playback will be perceived as gapless, while it is actually not.&lt;br /&gt;
&lt;br /&gt;
See the discussion on [http://www.hydrogenaudio.org/forums/index.php?showtopic=40995&amp;amp;st=0&amp;amp;p=360548&amp;amp;#entry360548 this HA thread].&lt;br /&gt;
&lt;br /&gt;
==Optimal solution==&lt;br /&gt;
It is possible to store metadata in the audio to explicitly declare the playtime, and/or the amount of padding/delays introduced in the encoding process. This information can be used to ensure that playtime will remain constant after decoding with no added silence.  The audio playback software must be able to recognize the metadata, and trim the decoded audio as necessary.&lt;br /&gt;
&lt;br /&gt;
The software can then take care to keep the output stream open between tracks.    It must also buffer the beginning of the following track in the same way it buffers the current track during normal playback.&lt;br /&gt;
&lt;br /&gt;
If the compression method supports gapless playback, the software properly decodes the audio data and metadata, the next track is buffered and ready to play, and the output stream remains open between tracks, optimal gapless audio is achieved.  A collection of consecutive tracks will then play in the same way they were mastered, allowing the listener to hear their album as the author intended.&lt;br /&gt;
&lt;br /&gt;
==Alternative solutions==&lt;br /&gt;
Digital signal processor ([[DSP]]) plugins can be used to detect silence between tracks and trim the audio as necessary on playback.  This is not an optimal solution because it does not always produce results identical to the source.  Sometimes an artist may intentionally leave silence at track boundaries for dramatic effect; removing this silence also removes that effect.&lt;br /&gt;
&lt;br /&gt;
It can also be difficult to properly implement silence removal.  If the silence threshold is too low and the track contains decoder artifacts, the software may not recognise some silences.  Conversely, if the threshold is too high, the software may remove entire sections of quiet music at the beginning or end of a track.&lt;br /&gt;
&lt;br /&gt;
DSP plugins can also be used to cross-fade between tracks.  This eliminates gaps that some listeners find distracting, but also greatly alters the audio data and is not always desirable.  In particular, when tracks are meant to be played together and perform the transition at high volume, cross-fading results in a large volume drop.&lt;br /&gt;
&lt;br /&gt;
Both of these alternate solutions are typically used to address compression methods that do not support the metadata for gapless playback.  Like the optimal solution, they still require buffering and not closing the output stream; however, they require more computations, making them less efficient.  In portable digital audio players, this can mean a reduced playing time on batteries.&lt;br /&gt;
&lt;br /&gt;
Due to the drawbacks of the alternative solutions above, some listeners dislike their negative effects more than the gap they attempt to remove. Another problem is that the solutions above do nothing to prevent the output stream from being closed and reopened at track boundaries; some measures can be taken to simulate a gapless output stream, but they are not always successful and side-effects may occur.&lt;br /&gt;
&lt;br /&gt;
Another alternative is to ignore track boundaries, encoding a single collection of tracks as a single compressed file, relying on [[cuesheet]]s (or something similar) for navigation.  While this method results in gapless playback within the collection of tracks with consecutive playback, it can be unwieldy due to the possibly large size of the resulting compressed file. Furthermore, unless the playback software or hardware can recognize the cue sheets, navigating between tracks may be difficult.&lt;br /&gt;
&lt;br /&gt;
==Format support==&lt;br /&gt;
Since [[lossless]] data compression excludes the possibility of the introduction of padding, all lossless audio file formats are inherently gapless. The following [[lossy]] audio file formats have provisions for gapless encoding.&lt;br /&gt;
&lt;br /&gt;
*[[Ogg Vorbis]]&lt;br /&gt;
*[[Speex]]&lt;br /&gt;
&lt;br /&gt;
Some other formats do not officially support gapless encoding, but some implementations of encoders or decoders may handle gapless metadata.&lt;br /&gt;
&lt;br /&gt;
*[[LAME]]-encoded MP3 can be gapless with players that support the LAME Mp3 info tag.&lt;br /&gt;
*[[AAC]] in [[MP4]] encoded with Nero Digital from [[Nero AG]] can be gapless with [[foobar2000]].&lt;br /&gt;
*AAC in MP4 encoded with iTunes 7.0 can be gapless with iTunes 7.0 and latest foobar2000.&lt;br /&gt;
&lt;br /&gt;
==Gapless solutions==&lt;br /&gt;
* [[foobar2000]]: Optimal gapless playback&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=18530 Otachan&#039;s in_!mpg123]: A gapless [[MP3]] decoder for [[Winamp]]&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Winamp 5.2 implements gapless playback in its built-in MP3 decoder.&lt;br /&gt;
&lt;br /&gt;
==Test samples==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=40998]: Samples for testing gapless playback abilities&lt;br /&gt;
* [http://guruboolez.free.fr/samples/gapless/gapless_WAVPACK_free_of_right.zip]: 17 very short gapless samples (2 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=16177</id>
		<title>Gapless playback</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=16177"/>
		<updated>2006-12-22T00:11:46Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Compression scheme artifacts */ minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gapless playback&#039;&#039;&#039; is the seamless playback of sequential audio tracks in digital audio formats. It allows live music or consecutive tracks to be heard exactly as they are mastered, without gaps between tracks.&lt;br /&gt;
&lt;br /&gt;
==Why gaps occur==&lt;br /&gt;
There are two main reasons why gaps occur during playback.&lt;br /&gt;
&lt;br /&gt;
===Compression scheme artifacts===&lt;br /&gt;
Most lossy audio compression schemes add a small amount of silence to the beginning of a track. One reason that this happens is because many such schemes involve a time/frequency domain transform (such as an [[MDCT]]) which can introduce gaps called encoder delay.  These gaps can be enlarged at decode time when a reverse-MDCT is performed, because the reverse transform will also introduce gaps (decoder delay) of its own.  Another factor is the fact that transforms act on data in units of fixed-size blocks. In order for the audio signal to be encoded in its entirety, small amounts of silence are appended to the input before the transform.  If the amount of padded silence is not accounted for, the padding will be decoded together with the audio data, also introducing gaps between tracks. Due to the introduction of such gaps, the playtime of the audio data is often slightly increased. (See [http://lame.sourceforge.net/tech-FAQ.txt LAME Technical FAQ])&lt;br /&gt;
&lt;br /&gt;
This issue is technical but also standards-related.  The popular [[MP3]] standard, for example, defines no way to record the amount of delay or padding for later removal.  Also, the encoder delay may vary from encoder to encoder, making automatic removal difficult. (See [http://mp3decoders.mp3-tech.org/decoders_lame.html lame v3.81 and 3.87 beta mp3 decoding quality test results] for a table of encoder delay values.) Even if two tracks are decompressed and merged into a single track, a gap will usually remain between them.  More recent compressed audio formats have been designed to address this problem, and can therefore produce gapless audio if played back correctly.&lt;br /&gt;
&lt;br /&gt;
===Poor design===&lt;br /&gt;
Even when the audio file itself does not contain undesirable gaps, software/firmware/hardware design often adds gaps during playback. In some cases, software closes and re-opens the output stream when switching tracks, causing the hardware to create a very short &amp;quot;click&amp;quot;. This problem is solved in more sophisticated designs of gapless playback.&lt;br /&gt;
&lt;br /&gt;
A different design problem relates to software/firmware/hardware which are not ready to seamlessly move to the next track by the time the current track is complete. In this scenario, the listener is left waiting in silence as the player locates the next file, reads it, decodes the first blocks if necessary and then starts loading the buffer for playback. The gap can be as much as half a second, or even more — very noticeable in &amp;quot;continuous&amp;quot; music such as certain classical or dance genres. &lt;br /&gt;
&lt;br /&gt;
Many older audio players on personal computers do not implement the required buffering to play gapless audio.  Some of these rely on third-party gapless audio plug-ins to buffer output.  Some newer players and newer versions of old players now support gapless playback directly.&lt;br /&gt;
&lt;br /&gt;
==Testing for gapless==&lt;br /&gt;
The best way is by using &#039;&#039;Test Samples&#039;&#039; listed at the end of this page.&lt;br /&gt;
&lt;br /&gt;
Some people attempts to detect gapless by generating pure tones, and encoding them into a lossy format. This is not recommended for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. Unless the first tone ends at 0 level and the second tone starts at 0 level, a glitch will be heard during transition.&lt;br /&gt;
2. Some decoders chop off the end and/or the start of the audio data. So the playback will be perceived as gapless, while it is actually not.&lt;br /&gt;
&lt;br /&gt;
See the discussion on [http://www.hydrogenaudio.org/forums/index.php?showtopic=40995&amp;amp;st=0&amp;amp;p=360548&amp;amp;#entry360548 this HA thread].&lt;br /&gt;
&lt;br /&gt;
==Optimal solution==&lt;br /&gt;
It is possible to store metadata in the audio to explicitly declare the playtime, and/or the amount of padding/delays introduced in the encoding process. This information can be used to ensure that playtime will remain constant after decoding with no added silence.  The audio playback software must be able to recognize the metadata, and trim the decoded audio as necessary.&lt;br /&gt;
&lt;br /&gt;
The software can then take care to keep the output stream open between tracks.    It must also buffer the beginning of the following track in the same way it buffers the current track during normal playback.&lt;br /&gt;
&lt;br /&gt;
If the compression method supports gapless playback, the software properly decodes the audio data and metadata, the next track is buffered and ready to play, and the output stream remains open between tracks, optimal gapless audio is achieved.  A collection of consecutive tracks will then play in the same way they were mastered, allowing the listener to hear their album as the author intended.&lt;br /&gt;
&lt;br /&gt;
==Alternative solutions==&lt;br /&gt;
Digital signal processor ([[DSP]]) plugins can be used to detect silence between tracks and trim the audio as necessary on playback.  This is not an optimal solution because it does not always produce results identical to the source.  Sometimes an artist may intentionally leave silence at track boundaries for dramatic effect; removing this silence also removes that effect.&lt;br /&gt;
&lt;br /&gt;
It can also be difficult to properly implement silence removal.  If the silence threshold is too low and the track contains decoder artifacts, the software may not recognise some silences.  Conversely, if the threshold is too high, the software may remove entire sections of quiet music at the beginning or end of a track.&lt;br /&gt;
&lt;br /&gt;
DSP plugins can also be used to cross-fade between tracks.  This eliminates gaps that some listeners find distracting, but also greatly alters the audio data and is not always desirable.  In particular, when tracks are meant to be played together and perform the transition at high volume, cross-fading results in a large volume drop.&lt;br /&gt;
&lt;br /&gt;
Both of these alternate solutions are typically used to address compression methods that do not support the metadata for gapless playback.  Like the optimal solution, they still require buffering and not closing the output stream; however, they require more computations, making them less efficient.  In portable digital audio players, this can mean a reduced playing time on batteries.&lt;br /&gt;
&lt;br /&gt;
Due to the drawbacks of the alternative solutions above, some listeners dislike their negative effects more than the gap they attempt to remove.&lt;br /&gt;
&lt;br /&gt;
Another alternative is to ignore track boundaries, encoding a single collection of tracks as a single compressed file, relying on [[cuesheet]]s (or something similar) for navigation.  While this method results in gapless playback within the collection of tracks, it can be unwieldy due to the possibly large size of the resulting compressed file. Furthermore, unless the playback software or hardware can recognize the cue sheets, navigating between tracks may be difficult.&lt;br /&gt;
&lt;br /&gt;
==Format support==&lt;br /&gt;
Since [[lossless]] data compression excludes the possibility of the introduction of padding, all lossless audio file formats are inherently gapless. The following [[lossy]] audio file formats have provisions for gapless encoding.&lt;br /&gt;
&lt;br /&gt;
*[[Ogg Vorbis]]&lt;br /&gt;
*[[Speex]]&lt;br /&gt;
&lt;br /&gt;
Some other formats do not officially support gapless encoding, but some implementations of encoders or decoders may handle gapless metadata.&lt;br /&gt;
&lt;br /&gt;
*[[LAME]]-encoded MP3 can be gapless with players that support the LAME Mp3 info tag.&lt;br /&gt;
*[[AAC]] in [[MP4]] encoded with Nero Digital from [[Nero AG]] can be gapless with [[foobar2000]].&lt;br /&gt;
*AAC in MP4 encoded with iTunes 7.0 can be gapless with iTunes 7.0 and latest foobar2000.&lt;br /&gt;
&lt;br /&gt;
==Gapless solutions==&lt;br /&gt;
* [[foobar2000]]: Optimal gapless playback&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=18530 Otachan&#039;s in_!mpg123]: A gapless [[MP3]] decoder for [[Winamp]]&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Winamp 5.2 implements gapless playback in its built-in MP3 decoder.&lt;br /&gt;
&lt;br /&gt;
==Test samples==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=40998]: Samples for testing gapless playback abilities&lt;br /&gt;
* [http://guruboolez.free.fr/samples/gapless/gapless_WAVPACK_free_of_right.zip]: 17 very short gapless samples (2 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=16176</id>
		<title>Gapless playback</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=16176"/>
		<updated>2006-12-22T00:11:00Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Why gaps occur */ sync with Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gapless playback&#039;&#039;&#039; is the seamless playback of sequential audio tracks in digital audio formats. It allows live music or consecutive tracks to be heard exactly as they are mastered, without gaps between tracks.&lt;br /&gt;
&lt;br /&gt;
==Why gaps occur==&lt;br /&gt;
There are two main reasons why gaps occur during playback.&lt;br /&gt;
&lt;br /&gt;
===Compression scheme artifacts===&lt;br /&gt;
Most lossy audio compression schemes add a small amount of silence to the beginning of a track. One reason that this happens is because many such schemes involve a time/frequency domain transform (such as an [[MDCT]]) which can introduce gaps called encoder delay.  These gaps can be enlarged at decode time when a reverse-MDCT is performed, because the reverse transform will also introduce gaps (decoder delay) of its own.  Another factor is the fact that transforms act on data in units of fixed-size blocks. In order for the audio signal to be encoded in its entirety, small amounts of silence are appended to the input before the transform.  If the amount of padded silence is not accounted for, the padding will be decoded together with the audio data, also introducing gaps between tracks. Due to the introduction of such gaps, the playtime of the audio data is often slightly increased. (See [http://lame.sourceforge.net/tech-FAQ.txt LAME Technical FAQ])&lt;br /&gt;
&lt;br /&gt;
This issue is technical but also standards-related.  The popular [[MP3]] standard, for example, defines no way to record the amount of delay or padding for later removal.  Also, the encoder delay may vary from encoder to encoder, making automatic removal difficult. (See [http://mp3decoders.mp3-tech.org/decoders_lame.html lame v3.81 and 3.87 beta mp3 decoding quality test results] for a table.) Features a table of encoder delay values.&amp;lt;/ref) Even if two tracks are decompressed and merged into a single track, a gap will usually remain between them.  More recent compressed audio formats have been designed to address this problem, and can therefore produce gapless audio if played back correctly.&lt;br /&gt;
&lt;br /&gt;
===Poor design===&lt;br /&gt;
Even when the audio file itself does not contain undesirable gaps, software/firmware/hardware design often adds gaps during playback. In some cases, software closes and re-opens the output stream when switching tracks, causing the hardware to create a very short &amp;quot;click&amp;quot;. This problem is solved in more sophisticated designs of gapless playback.&lt;br /&gt;
&lt;br /&gt;
A different design problem relates to software/firmware/hardware which are not ready to seamlessly move to the next track by the time the current track is complete. In this scenario, the listener is left waiting in silence as the player locates the next file, reads it, decodes the first blocks if necessary and then starts loading the buffer for playback. The gap can be as much as half a second, or even more — very noticeable in &amp;quot;continuous&amp;quot; music such as certain classical or dance genres. &lt;br /&gt;
&lt;br /&gt;
Many older audio players on personal computers do not implement the required buffering to play gapless audio.  Some of these rely on third-party gapless audio plug-ins to buffer output.  Some newer players and newer versions of old players now support gapless playback directly.&lt;br /&gt;
&lt;br /&gt;
==Testing for gapless==&lt;br /&gt;
The best way is by using &#039;&#039;Test Samples&#039;&#039; listed at the end of this page.&lt;br /&gt;
&lt;br /&gt;
Some people attempts to detect gapless by generating pure tones, and encoding them into a lossy format. This is not recommended for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. Unless the first tone ends at 0 level and the second tone starts at 0 level, a glitch will be heard during transition.&lt;br /&gt;
2. Some decoders chop off the end and/or the start of the audio data. So the playback will be perceived as gapless, while it is actually not.&lt;br /&gt;
&lt;br /&gt;
See the discussion on [http://www.hydrogenaudio.org/forums/index.php?showtopic=40995&amp;amp;st=0&amp;amp;p=360548&amp;amp;#entry360548 this HA thread].&lt;br /&gt;
&lt;br /&gt;
==Optimal solution==&lt;br /&gt;
It is possible to store metadata in the audio to explicitly declare the playtime, and/or the amount of padding/delays introduced in the encoding process. This information can be used to ensure that playtime will remain constant after decoding with no added silence.  The audio playback software must be able to recognize the metadata, and trim the decoded audio as necessary.&lt;br /&gt;
&lt;br /&gt;
The software can then take care to keep the output stream open between tracks.    It must also buffer the beginning of the following track in the same way it buffers the current track during normal playback.&lt;br /&gt;
&lt;br /&gt;
If the compression method supports gapless playback, the software properly decodes the audio data and metadata, the next track is buffered and ready to play, and the output stream remains open between tracks, optimal gapless audio is achieved.  A collection of consecutive tracks will then play in the same way they were mastered, allowing the listener to hear their album as the author intended.&lt;br /&gt;
&lt;br /&gt;
==Alternative solutions==&lt;br /&gt;
Digital signal processor ([[DSP]]) plugins can be used to detect silence between tracks and trim the audio as necessary on playback.  This is not an optimal solution because it does not always produce results identical to the source.  Sometimes an artist may intentionally leave silence at track boundaries for dramatic effect; removing this silence also removes that effect.&lt;br /&gt;
&lt;br /&gt;
It can also be difficult to properly implement silence removal.  If the silence threshold is too low and the track contains decoder artifacts, the software may not recognise some silences.  Conversely, if the threshold is too high, the software may remove entire sections of quiet music at the beginning or end of a track.&lt;br /&gt;
&lt;br /&gt;
DSP plugins can also be used to cross-fade between tracks.  This eliminates gaps that some listeners find distracting, but also greatly alters the audio data and is not always desirable.  In particular, when tracks are meant to be played together and perform the transition at high volume, cross-fading results in a large volume drop.&lt;br /&gt;
&lt;br /&gt;
Both of these alternate solutions are typically used to address compression methods that do not support the metadata for gapless playback.  Like the optimal solution, they still require buffering and not closing the output stream; however, they require more computations, making them less efficient.  In portable digital audio players, this can mean a reduced playing time on batteries.&lt;br /&gt;
&lt;br /&gt;
Due to the drawbacks of the alternative solutions above, some listeners dislike their negative effects more than the gap they attempt to remove.&lt;br /&gt;
&lt;br /&gt;
Another alternative is to ignore track boundaries, encoding a single collection of tracks as a single compressed file, relying on [[cuesheet]]s (or something similar) for navigation.  While this method results in gapless playback within the collection of tracks, it can be unwieldy due to the possibly large size of the resulting compressed file. Furthermore, unless the playback software or hardware can recognize the cue sheets, navigating between tracks may be difficult.&lt;br /&gt;
&lt;br /&gt;
==Format support==&lt;br /&gt;
Since [[lossless]] data compression excludes the possibility of the introduction of padding, all lossless audio file formats are inherently gapless. The following [[lossy]] audio file formats have provisions for gapless encoding.&lt;br /&gt;
&lt;br /&gt;
*[[Ogg Vorbis]]&lt;br /&gt;
*[[Speex]]&lt;br /&gt;
&lt;br /&gt;
Some other formats do not officially support gapless encoding, but some implementations of encoders or decoders may handle gapless metadata.&lt;br /&gt;
&lt;br /&gt;
*[[LAME]]-encoded MP3 can be gapless with players that support the LAME Mp3 info tag.&lt;br /&gt;
*[[AAC]] in [[MP4]] encoded with Nero Digital from [[Nero AG]] can be gapless with [[foobar2000]].&lt;br /&gt;
*AAC in MP4 encoded with iTunes 7.0 can be gapless with iTunes 7.0 and latest foobar2000.&lt;br /&gt;
&lt;br /&gt;
==Gapless solutions==&lt;br /&gt;
* [[foobar2000]]: Optimal gapless playback&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=18530 Otachan&#039;s in_!mpg123]: A gapless [[MP3]] decoder for [[Winamp]]&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Winamp 5.2 implements gapless playback in its built-in MP3 decoder.&lt;br /&gt;
&lt;br /&gt;
==Test samples==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=40998]: Samples for testing gapless playback abilities&lt;br /&gt;
* [http://guruboolez.free.fr/samples/gapless/gapless_WAVPACK_free_of_right.zip]: 17 very short gapless samples (2 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=15065</id>
		<title>Gapless playback</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Gapless_playback&amp;diff=15065"/>
		<updated>2006-10-23T12:25:28Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Format support */ iTunes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gapless playback&#039;&#039;&#039; is the seamless playback of sequential audio tracks in digital audio formats. It allows live music or consecutive tracks to be heard exactly as they are mastered, without gaps between tracks.&lt;br /&gt;
&lt;br /&gt;
==Why gaps occur==&lt;br /&gt;
Most lossy audio compression schemes involve a time/frequency domain transform.  Such transforms cannot deal with arbitrary amounts of data, and instead act on blocks of data at a time.  In order for the audio signal to be encoded in its entirety, small amounts of silence are prepended and appended to the input before the transform.  If the amount of padded silence is not accounted for, the playtime of the audio data may not be equal before and after the compression. In such cases, the silence will be decoded together with the audio data, introducing gaps between tracks.&lt;br /&gt;
&lt;br /&gt;
Most audio playback software will also close the audio output stream when switching tracks, introducing gaps or making existing gaps larger.  Unless the beginning of the next track is buffered and introduced immediately when the current track ends, gaps will occur.&lt;br /&gt;
&lt;br /&gt;
Some compression methods such as the popular [[MP3]] can be problematic because the MP3 standard defines no way to record the amount of padding for later removal.  Even if two tracks are decompressed and merged into a single track, a gap will remain between them.  More recent audio formats have been designed to address this problem, and will produce gapless audio if played back correctly.&lt;br /&gt;
&lt;br /&gt;
==Testing for gapless==&lt;br /&gt;
The best way is by using &#039;&#039;Test Samples&#039;&#039; listed at the end of this page.&lt;br /&gt;
&lt;br /&gt;
Some people attempts to detect gapless by generating pure tones, and encoding them into a lossy format. This is not recommended for two reasons:&lt;br /&gt;
&lt;br /&gt;
1. Unless the first tone ends at 0 level and the second tone starts at 0 level, a glitch will be heard during transition.&lt;br /&gt;
2. Some decoders chop off the end and/or the start of the audio data. So the playback will be perceived as gapless, while it is actually not.&lt;br /&gt;
&lt;br /&gt;
See the discussion on [http://www.hydrogenaudio.org/forums/index.php?showtopic=40995&amp;amp;st=0&amp;amp;p=360548&amp;amp;#entry360548 this HA thread].&lt;br /&gt;
&lt;br /&gt;
==Optimal solution==&lt;br /&gt;
It is possible to store metadata in the audio to explicitly declare the playtime, and/or the amount of padding/delays introduced in the encoding process. This information can be used to ensure that playtime will remain constant after decoding with no added silence.  The audio playback software must be able to recognize the metadata, and trim the decoded audio as necessary.&lt;br /&gt;
&lt;br /&gt;
The software can then take care to keep the output stream open between tracks.    It must also buffer the beginning of the following track in the same way it buffers the current track during normal playback.&lt;br /&gt;
&lt;br /&gt;
If the compression method supports gapless playback, the software properly decodes the audio data and metadata, the next track is buffered and ready to play, and the output stream remains open between tracks, optimal gapless audio is achieved.  A collection of consecutive tracks will then play in the same way they were mastered, allowing the listener to hear their album as the author intended.&lt;br /&gt;
&lt;br /&gt;
==Alternative solutions==&lt;br /&gt;
Digital signal processor ([[DSP]]) plugins can be used to detect silence between tracks and trim the audio as necessary on playback.  This is not an optimal solution because it does not always produce results identical to the source.  Sometimes an artist may intentionally leave silence at track boundaries for dramatic effect; removing this silence also removes that effect.&lt;br /&gt;
&lt;br /&gt;
It can also be difficult to properly implement silence removal.  If the silence threshold is too low and the track contains decoder artifacts, the software may not recognise some silences.  Conversely, if the threshold is too high, the software may remove entire sections of quiet music at the beginning or end of a track.&lt;br /&gt;
&lt;br /&gt;
DSP plugins can also be used to cross-fade between tracks.  This eliminates gaps that some listeners find distracting, but also greatly alters the audio data and is not always desirable.  In particular, when tracks are meant to be played together and perform the transition at high volume, cross-fading results in a large volume drop.&lt;br /&gt;
&lt;br /&gt;
Both of these alternate solutions are typically used to address compression methods that do not support the metadata for gapless playback.  Like the optimal solution, they still require buffering and not closing the output stream; however, they require more computations, making them less efficient.  In portable digital audio players, this can mean a reduced playing time on batteries.&lt;br /&gt;
&lt;br /&gt;
Due to the drawbacks of the alternative solutions above, some listeners dislike their negative effects more than the gap they attempt to remove.&lt;br /&gt;
&lt;br /&gt;
Another alternative is to ignore track boundaries, encoding a single collection of tracks as a single compressed file, relying on [[cuesheet]]s (or something similar) for navigation.  While this method results in gapless playback within the collection of tracks, it can be unwieldy due to the possibly large size of the resulting compressed file. Furthermore, unless the playback software or hardware can recognize the cue sheets, navigating between tracks may be difficult.&lt;br /&gt;
&lt;br /&gt;
==Format support==&lt;br /&gt;
Since [[lossless]] data compression excludes the possibility of the introduction of padding, all lossless audio file formats are inherently gapless. The following [[lossy]] audio file formats have provisions for gapless encoding.&lt;br /&gt;
&lt;br /&gt;
*[[Ogg Vorbis]]&lt;br /&gt;
*[[Speex]]&lt;br /&gt;
&lt;br /&gt;
Some other formats do not officially support gapless encoding, but some implementations of encoders or decoders may handle gapless metadata.&lt;br /&gt;
&lt;br /&gt;
*[[LAME]]-encoded MP3 can be gapless with players that support the LAME Mp3 info tag.&lt;br /&gt;
*[[AAC]] in [[MP4]] encoded with Nero Digital from [[Nero AG]] can be gapless with [[foobar2000]].&lt;br /&gt;
*AAC in MP4 encoded with iTunes 7.0 can be gapless with iTunes 7.0 and latest foobar2000.&lt;br /&gt;
&lt;br /&gt;
==Gapless solutions==&lt;br /&gt;
* [[foobar2000]]: Optimal gapless playback&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=18530 Otachan&#039;s in_!mpg123]: A gapless [[MP3]] decoder for [[Winamp]]&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Winamp 5.2 implements gapless playback in its built-in MP3 decoder.&lt;br /&gt;
&lt;br /&gt;
==Test samples==&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=40998]: Samples for testing gapless playback abilities&lt;br /&gt;
* [http://guruboolez.free.fr/samples/gapless/gapless_WAVPACK_free_of_right.zip]: 17 very short gapless samples (2 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=14943</id>
		<title>Cue sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=14943"/>
		<updated>2006-10-12T06:33:56Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* See also */ split, direct links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cuesheets&#039;&#039;&#039; (or &amp;quot;cue sheets&amp;quot;) are used to provide index information for a large audio file. They are generally used in conjunction with either extracting from, or burning to, [[CD]].  Cuesheets have the file extension &amp;quot;.cue&amp;quot;, and are simple plain text files.&lt;br /&gt;
&lt;br /&gt;
The cuesheet may contain [[metadata]] (e.g.: &#039;&#039;&#039;TITLE&#039;&#039;&#039; and &#039;&#039;&#039;PERFORMER&#039;&#039;&#039; statements), but must contain information regarding the file(s) referenced by the cuesheet (&#039;&#039;&#039;FILE&#039;&#039;&#039; command) and the &#039;&#039;&#039;TRACK&#039;&#039;&#039; and &#039;&#039;&#039;INDEX&#039;&#039;&#039; points within the file.  INDEX points are specified using the &#039;&#039;&#039;MM:SS:FF&#039;&#039;&#039; format, where MM is the number of minutes, SS the number of seconds, and FF the number of frames (there are seventy five frames to one second).&lt;br /&gt;
&lt;br /&gt;
The cuesheet has become popular thanks to [[EAC]] users who rip [[CD]]s to one image file, with an accompanying cuesheet.  [[EAC]] can create four different cuesheet layouts, three for use with separate track files (a cuesheet may reference more than one file), but the single file cuesheet is most likely the more popular.&lt;br /&gt;
&lt;br /&gt;
Cuesheets can be used when writing data to discs, as well as audio [[CD]]s.  This document focuses solely on the audio-related commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Background==&lt;br /&gt;
The cuesheet format was invented by Jeff Arnold of [http://www.goldenhawk.com/ GoldenHawk Technology] for use with his [[DAO]] (&#039;&#039;&#039;D&#039;&#039;&#039;isc &#039;&#039;&#039;A&#039;&#039;&#039;t &#039;&#039;&#039;O&#039;&#039;&#039;nce) and [http://www.goldenhawk.com/ CDRWIN] applications.  The format has since been adopted as the &#039;&#039;de facto&#039;&#039; standard, and is used by various other applications, including [[foobar2000]].  The official cuesheet specification is widely accepted to be Appendix A of the [http://www.goldenhawk.com/ CDRWIN] User&#039;s Guide. &lt;br /&gt;
&lt;br /&gt;
The name is taken from the &#039;&#039;&#039;SEND CUE SHEET&#039;&#039;&#039; command, when a cuesheet describing the disc layout must be sent to the drive before writing starts in SAO write mode. The drive writes to the disc, using the cuesheet information to generate the P and Q subchannel data, and to retrieve the format and block size of the data transfered with the &#039;&#039;&#039;WRITE&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
Text adapted from [http://www.hydrogenaudio.org/forums/index.php?showtopic=42485 a post by Martin H].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cuesheet Commands==&lt;br /&gt;
&lt;br /&gt;
The following commands are detailed in the Appendix A of the [http://www.goldenhawk.com/ CDRWIN] User&#039;s Guide:&lt;br /&gt;
&lt;br /&gt;
*CATALOG&lt;br /&gt;
*CDTEXTFILE&lt;br /&gt;
*FILE&lt;br /&gt;
*FLAGS&lt;br /&gt;
*INDEX&lt;br /&gt;
*ISRC&lt;br /&gt;
*PERFORMER&lt;br /&gt;
*POSTGAP&lt;br /&gt;
*PREGAP&lt;br /&gt;
*REM&lt;br /&gt;
*SONGWRITER&lt;br /&gt;
*TITLE&lt;br /&gt;
*TRACK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are those most often used:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
! style=padding-right:24px| Command || Description&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| FILE || The FILE command specifies the file that the cuesheet is currently referencing.  Valid file types are WAVE, MP3 and AIFF, although other formats, e.g.: lossless formats like [[WavPack]] and [[FLAC]], can also be used under the WAVE file type.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| INDEX || A number between 00 and 99.  Index points are specified in MM:SS:FF format, and are relative to the start of the file currently referenced. INDEX 01 commands specify the beginning of a new track.  INDEX 00 commands specify the pre-gap of a track; you may notice your [[CD]] player count up from a negative value before beginning a new track - this is the period between INDEX 00 and INDEX 01.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| PERFORMER || At top-level this will specify the CD artist, while at track-level it specifies the track artist.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| PREGAP || Used to specify the length of a track pre-gap, in MM:SS:FF format.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| REM || Used to record comments in a cuesheet.  This command is often used to store additional meta data to TITLE and PERFORMER, e.g.: the date or genre of the disc.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| TITLE || At top-level this will specify the album name, while at track-level it specifies the track name.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| TRACK|| A number between 0 and 99, indicating the track number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Cuesheet==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM GENRE Ska&lt;br /&gt;
REM DATE 1991&lt;br /&gt;
REM DISCID D00DA810&lt;br /&gt;
REM COMMENT &amp;quot;ExactAudioCopy v0.95b4&amp;quot;&lt;br /&gt;
PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
TITLE &amp;quot;Singles&amp;quot;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 02:47:74&lt;br /&gt;
    INDEX 01 02:48:27&lt;br /&gt;
  TRACK 03 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nite Klub&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 05:41:50&lt;br /&gt;
    INDEX 01 05:42:27&lt;br /&gt;
  TRACK 04 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Too Much Too Young&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 08:53:47&lt;br /&gt;
    INDEX 01 08:54:37&lt;br /&gt;
  TRACK 05 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Guns Of Navarone&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 10:59:20&lt;br /&gt;
    INDEX 01 11:00:17&lt;br /&gt;
  TRACK 06 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rat Race&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 13:20:55&lt;br /&gt;
    INDEX 01 13:20:67&lt;br /&gt;
  TRACK 07 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Stereotype&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 16:29:67&lt;br /&gt;
    INDEX 01 16:30:30&lt;br /&gt;
  TRACK 08 AUDIO&lt;br /&gt;
    TITLE &amp;quot;International Jet Set&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 20:19:27&lt;br /&gt;
    INDEX 01 20:20:20&lt;br /&gt;
  TRACK 09 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Do Nothing&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 24:30:70&lt;br /&gt;
    INDEX 01 24:32:27&lt;br /&gt;
  TRACK 10 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Ghost Town&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 28:23:30&lt;br /&gt;
    INDEX 01 28:23:42&lt;br /&gt;
  TRACK 11 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Why?&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 34:21:37&lt;br /&gt;
    INDEX 01 34:21:47&lt;br /&gt;
  TRACK 12 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Friday Night, Saturday Morning&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 38:16:50&lt;br /&gt;
    INDEX 01 38:16:55&lt;br /&gt;
  TRACK 13 AUDIO&lt;br /&gt;
    TITLE &amp;quot;War Crimes&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 41:50:07&lt;br /&gt;
    INDEX 01 41:51:00&lt;br /&gt;
  TRACK 14 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Racist Friend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 45:50:55&lt;br /&gt;
    INDEX 01 45:51:72&lt;br /&gt;
  TRACK 15 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nelson Mandela&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 49:35:55&lt;br /&gt;
    INDEX 01 49:38:22&lt;br /&gt;
  TRACK 16 AUDIO&lt;br /&gt;
    TITLE &amp;quot;(What I Like Most About You Is Your) Girlfriend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 54:11:00&lt;br /&gt;
    INDEX 01 54:12:40&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Useful Applications==&lt;br /&gt;
===Playing===&lt;br /&gt;
*[[foobar2000]]&lt;br /&gt;
===Splitting===&lt;br /&gt;
*[[ACDIR]]: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_2.html&lt;br /&gt;
*CueProc: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_6.html&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
*[[shntool]]: http://www.etree.org/shnutils/shntool/&lt;br /&gt;
*WavSplit: http://tangerine.uw.hu/prog/&lt;br /&gt;
===Joining===&lt;br /&gt;
*CueMake&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
===Creating===&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
*[[Goldwave]]: http://www.goldwave.com/&lt;br /&gt;
*Wave Repair: http://www.waverepair.com/&lt;br /&gt;
*CueMaster: http://cuemaster.host.sk/&lt;br /&gt;
*[[CueTools]]: http://www.hydrogenaudio.org/forums/index.php?showtopic=41476&lt;br /&gt;
===Other===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Gap settings]]&lt;br /&gt;
*[[EAC CUE Sheets]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*Wikipedia article: http://en.wikipedia.org/wiki/Cue_sheet&lt;br /&gt;
*The Goldenhawk website: http://www.goldenhawk.com/&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=14942</id>
		<title>Cue sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=14942"/>
		<updated>2006-10-12T05:11:11Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: bold title, heading levels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cuesheets&#039;&#039;&#039; (or &amp;quot;cue sheets&amp;quot;) are used to provide index information for a large audio file. They are generally used in conjunction with either extracting from, or burning to, [[CD]].  Cuesheets have the file extension &amp;quot;.cue&amp;quot;, and are simple plain text files.&lt;br /&gt;
&lt;br /&gt;
The cuesheet may contain [[metadata]] (e.g.: &#039;&#039;&#039;TITLE&#039;&#039;&#039; and &#039;&#039;&#039;PERFORMER&#039;&#039;&#039; statements), but must contain information regarding the file(s) referenced by the cuesheet (&#039;&#039;&#039;FILE&#039;&#039;&#039; command) and the &#039;&#039;&#039;TRACK&#039;&#039;&#039; and &#039;&#039;&#039;INDEX&#039;&#039;&#039; points within the file.  INDEX points are specified using the &#039;&#039;&#039;MM:SS:FF&#039;&#039;&#039; format, where MM is the number of minutes, SS the number of seconds, and FF the number of frames (there are seventy five frames to one second).&lt;br /&gt;
&lt;br /&gt;
The cuesheet has become popular thanks to [[EAC]] users who rip [[CD]]s to one image file, with an accompanying cuesheet.  [[EAC]] can create four different cuesheet layouts, three for use with separate track files (a cuesheet may reference more than one file), but the single file cuesheet is most likely the more popular.&lt;br /&gt;
&lt;br /&gt;
Cuesheets can be used when writing data to discs, as well as audio [[CD]]s.  This document focuses solely on the audio-related commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The Background==&lt;br /&gt;
The cuesheet format was invented by Jeff Arnold of [http://www.goldenhawk.com/ GoldenHawk Technology] for use with his [[DAO]] (&#039;&#039;&#039;D&#039;&#039;&#039;isc &#039;&#039;&#039;A&#039;&#039;&#039;t &#039;&#039;&#039;O&#039;&#039;&#039;nce) and [http://www.goldenhawk.com/ CDRWIN] applications.  The format has since been adopted as the &#039;&#039;de facto&#039;&#039; standard, and is used by various other applications, including [[foobar2000]].  The official cuesheet specification is widely accepted to be Appendix A of the [http://www.goldenhawk.com/ CDRWIN] User&#039;s Guide. &lt;br /&gt;
&lt;br /&gt;
The name is taken from the &#039;&#039;&#039;SEND CUE SHEET&#039;&#039;&#039; command, when a cuesheet describing the disc layout must be sent to the drive before writing starts in SAO write mode. The drive writes to the disc, using the cuesheet information to generate the P and Q subchannel data, and to retrieve the format and block size of the data transfered with the &#039;&#039;&#039;WRITE&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
Text adapted from [http://www.hydrogenaudio.org/forums/index.php?showtopic=42485 a post by Martin H].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cuesheet Commands==&lt;br /&gt;
&lt;br /&gt;
The following commands are detailed in the Appendix A of the [http://www.goldenhawk.com/ CDRWIN] User&#039;s Guide:&lt;br /&gt;
&lt;br /&gt;
*CATALOG&lt;br /&gt;
*CDTEXTFILE&lt;br /&gt;
*FILE&lt;br /&gt;
*FLAGS&lt;br /&gt;
*INDEX&lt;br /&gt;
*ISRC&lt;br /&gt;
*PERFORMER&lt;br /&gt;
*POSTGAP&lt;br /&gt;
*PREGAP&lt;br /&gt;
*REM&lt;br /&gt;
*SONGWRITER&lt;br /&gt;
*TITLE&lt;br /&gt;
*TRACK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are those most often used:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
! style=padding-right:24px| Command || Description&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| FILE || The FILE command specifies the file that the cuesheet is currently referencing.  Valid file types are WAVE, MP3 and AIFF, although other formats, e.g.: lossless formats like [[WavPack]] and [[FLAC]], can also be used under the WAVE file type.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| INDEX || A number between 00 and 99.  Index points are specified in MM:SS:FF format, and are relative to the start of the file currently referenced. INDEX 01 commands specify the beginning of a new track.  INDEX 00 commands specify the pre-gap of a track; you may notice your [[CD]] player count up from a negative value before beginning a new track - this is the period between INDEX 00 and INDEX 01.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| PERFORMER || At top-level this will specify the CD artist, while at track-level it specifies the track artist.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| PREGAP || Used to specify the length of a track pre-gap, in MM:SS:FF format.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| REM || Used to record comments in a cuesheet.  This command is often used to store additional meta data to TITLE and PERFORMER, e.g.: the date or genre of the disc.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| TITLE || At top-level this will specify the album name, while at track-level it specifies the track name.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| TRACK|| A number between 0 and 99, indicating the track number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Cuesheet==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM GENRE Ska&lt;br /&gt;
REM DATE 1991&lt;br /&gt;
REM DISCID D00DA810&lt;br /&gt;
REM COMMENT &amp;quot;ExactAudioCopy v0.95b4&amp;quot;&lt;br /&gt;
PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
TITLE &amp;quot;Singles&amp;quot;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 02:47:74&lt;br /&gt;
    INDEX 01 02:48:27&lt;br /&gt;
  TRACK 03 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nite Klub&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 05:41:50&lt;br /&gt;
    INDEX 01 05:42:27&lt;br /&gt;
  TRACK 04 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Too Much Too Young&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 08:53:47&lt;br /&gt;
    INDEX 01 08:54:37&lt;br /&gt;
  TRACK 05 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Guns Of Navarone&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 10:59:20&lt;br /&gt;
    INDEX 01 11:00:17&lt;br /&gt;
  TRACK 06 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rat Race&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 13:20:55&lt;br /&gt;
    INDEX 01 13:20:67&lt;br /&gt;
  TRACK 07 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Stereotype&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 16:29:67&lt;br /&gt;
    INDEX 01 16:30:30&lt;br /&gt;
  TRACK 08 AUDIO&lt;br /&gt;
    TITLE &amp;quot;International Jet Set&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 20:19:27&lt;br /&gt;
    INDEX 01 20:20:20&lt;br /&gt;
  TRACK 09 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Do Nothing&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 24:30:70&lt;br /&gt;
    INDEX 01 24:32:27&lt;br /&gt;
  TRACK 10 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Ghost Town&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 28:23:30&lt;br /&gt;
    INDEX 01 28:23:42&lt;br /&gt;
  TRACK 11 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Why?&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 34:21:37&lt;br /&gt;
    INDEX 01 34:21:47&lt;br /&gt;
  TRACK 12 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Friday Night, Saturday Morning&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 38:16:50&lt;br /&gt;
    INDEX 01 38:16:55&lt;br /&gt;
  TRACK 13 AUDIO&lt;br /&gt;
    TITLE &amp;quot;War Crimes&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 41:50:07&lt;br /&gt;
    INDEX 01 41:51:00&lt;br /&gt;
  TRACK 14 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Racist Friend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 45:50:55&lt;br /&gt;
    INDEX 01 45:51:72&lt;br /&gt;
  TRACK 15 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nelson Mandela&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 49:35:55&lt;br /&gt;
    INDEX 01 49:38:22&lt;br /&gt;
  TRACK 16 AUDIO&lt;br /&gt;
    TITLE &amp;quot;(What I Like Most About You Is Your) Girlfriend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 54:11:00&lt;br /&gt;
    INDEX 01 54:12:40&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Useful Applications==&lt;br /&gt;
===Playing===&lt;br /&gt;
*[[foobar2000]]&lt;br /&gt;
===Splitting===&lt;br /&gt;
*[[ACDIR]]: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_2.html&lt;br /&gt;
*CueProc: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_6.html&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
*[[shntool]]: http://www.etree.org/shnutils/shntool/&lt;br /&gt;
*WavSplit: http://tangerine.uw.hu/prog/&lt;br /&gt;
===Joining===&lt;br /&gt;
*CueMake&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
===Creating===&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
*[[Goldwave]]: http://www.goldwave.com/&lt;br /&gt;
*Wave Repair: http://www.waverepair.com/&lt;br /&gt;
*CueMaster: http://cuemaster.host.sk/&lt;br /&gt;
*[[CueTools]]: http://www.hydrogenaudio.org/forums/index.php?showtopic=41476&lt;br /&gt;
===Other===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
*Internal&lt;br /&gt;
**[[Gap settings|Gap Settings]]&lt;br /&gt;
**[[EAC CUE Sheets|EAC Cuesheets]]&lt;br /&gt;
*External&lt;br /&gt;
**Wikipedia article: http://en.wikipedia.org/wiki/Cue_sheet&lt;br /&gt;
**The Goldenhawk website: http://www.goldenhawk.com/&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=14941</id>
		<title>Cue sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Cue_sheet&amp;diff=14941"/>
		<updated>2006-10-12T05:09:22Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Links */ heading level, listify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cuesheets (or &amp;quot;cue sheets&amp;quot;) are used to provide index information for a large audio file. They are generally used in conjunction with either extracting from, or burning to, [[CD]].  Cuesheets have the file extension &amp;quot;.cue&amp;quot;, and are simple plain text files.&lt;br /&gt;
&lt;br /&gt;
The cuesheet may contain [[metadata]] (e.g.: &#039;&#039;&#039;TITLE&#039;&#039;&#039; and &#039;&#039;&#039;PERFORMER&#039;&#039;&#039; statements), but must contain information regarding the file(s) referenced by the cuesheet (&#039;&#039;&#039;FILE&#039;&#039;&#039; command) and the &#039;&#039;&#039;TRACK&#039;&#039;&#039; and &#039;&#039;&#039;INDEX&#039;&#039;&#039; points within the file.  INDEX points are specified using the &#039;&#039;&#039;MM:SS:FF&#039;&#039;&#039; format, where MM is the number of minutes, SS the number of seconds, and FF the number of frames (there are seventy five frames to one second).&lt;br /&gt;
&lt;br /&gt;
The cuesheet has become popular thanks to [[EAC]] users who rip [[CD]]s to one image file, with an accompanying cuesheet.  [[EAC]] can create four different cuesheet layouts, three for use with separate track files (a cuesheet may reference more than one file), but the single file cuesheet is most likely the more popular.&lt;br /&gt;
&lt;br /&gt;
Cuesheets can be used when writing data to discs, as well as audio [[CD]]s.  This document focuses solely on the audio-related commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=The Background=&lt;br /&gt;
The cuesheet format was invented by Jeff Arnold of [http://www.goldenhawk.com/ GoldenHawk Technology] for use with his [[DAO]] (&#039;&#039;&#039;D&#039;&#039;&#039;isc &#039;&#039;&#039;A&#039;&#039;&#039;t &#039;&#039;&#039;O&#039;&#039;&#039;nce) and [http://www.goldenhawk.com/ CDRWIN] applications.  The format has since been adopted as the &#039;&#039;de facto&#039;&#039; standard, and is used by various other applications, including [[foobar2000]].  The official cuesheet specification is widely accepted to be Appendix A of the [http://www.goldenhawk.com/ CDRWIN] User&#039;s Guide. &lt;br /&gt;
&lt;br /&gt;
The name is taken from the &#039;&#039;&#039;SEND CUE SHEET&#039;&#039;&#039; command, when a cuesheet describing the disc layout must be sent to the drive before writing starts in SAO write mode. The drive writes to the disc, using the cuesheet information to generate the P and Q subchannel data, and to retrieve the format and block size of the data transfered with the &#039;&#039;&#039;WRITE&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
Text adapted from [http://www.hydrogenaudio.org/forums/index.php?showtopic=42485 a post by Martin H].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Cuesheet Commands=&lt;br /&gt;
&lt;br /&gt;
The following commands are detailed in the Appendix A of the [http://www.goldenhawk.com/ CDRWIN] User&#039;s Guide:&lt;br /&gt;
&lt;br /&gt;
*CATALOG&lt;br /&gt;
*CDTEXTFILE&lt;br /&gt;
*FILE&lt;br /&gt;
*FLAGS&lt;br /&gt;
*INDEX&lt;br /&gt;
*ISRC&lt;br /&gt;
*PERFORMER&lt;br /&gt;
*POSTGAP&lt;br /&gt;
*PREGAP&lt;br /&gt;
*REM&lt;br /&gt;
*SONGWRITER&lt;br /&gt;
*TITLE&lt;br /&gt;
*TRACK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following are those most often used:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
! style=padding-right:24px| Command || Description&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| FILE || The FILE command specifies the file that the cuesheet is currently referencing.  Valid file types are WAVE, MP3 and AIFF, although other formats, e.g.: lossless formats like [[WavPack]] and [[FLAC]], can also be used under the WAVE file type.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| INDEX || A number between 00 and 99.  Index points are specified in MM:SS:FF format, and are relative to the start of the file currently referenced. INDEX 01 commands specify the beginning of a new track.  INDEX 00 commands specify the pre-gap of a track; you may notice your [[CD]] player count up from a negative value before beginning a new track - this is the period between INDEX 00 and INDEX 01.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| PERFORMER || At top-level this will specify the CD artist, while at track-level it specifies the track artist.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| PREGAP || Used to specify the length of a track pre-gap, in MM:SS:FF format.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| REM || Used to record comments in a cuesheet.  This command is often used to store additional meta data to TITLE and PERFORMER, e.g.: the date or genre of the disc.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| TITLE || At top-level this will specify the album name, while at track-level it specifies the track name.&lt;br /&gt;
|-style=vertical-align:top&lt;br /&gt;
| TRACK|| A number between 0 and 99, indicating the track number.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Example Cuesheet=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM GENRE Ska&lt;br /&gt;
REM DATE 1991&lt;br /&gt;
REM DISCID D00DA810&lt;br /&gt;
REM COMMENT &amp;quot;ExactAudioCopy v0.95b4&amp;quot;&lt;br /&gt;
PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
TITLE &amp;quot;Singles&amp;quot;&lt;br /&gt;
FILE &amp;quot;The Specials - Singles.wav&amp;quot; WAVE&lt;br /&gt;
  TRACK 01 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Gangsters&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 01 00:00:00&lt;br /&gt;
  TRACK 02 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rudi, A Message To You&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 02:47:74&lt;br /&gt;
    INDEX 01 02:48:27&lt;br /&gt;
  TRACK 03 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nite Klub&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 05:41:50&lt;br /&gt;
    INDEX 01 05:42:27&lt;br /&gt;
  TRACK 04 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Too Much Too Young&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 08:53:47&lt;br /&gt;
    INDEX 01 08:54:37&lt;br /&gt;
  TRACK 05 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Guns Of Navarone&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 10:59:20&lt;br /&gt;
    INDEX 01 11:00:17&lt;br /&gt;
  TRACK 06 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Rat Race&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 13:20:55&lt;br /&gt;
    INDEX 01 13:20:67&lt;br /&gt;
  TRACK 07 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Stereotype&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 16:29:67&lt;br /&gt;
    INDEX 01 16:30:30&lt;br /&gt;
  TRACK 08 AUDIO&lt;br /&gt;
    TITLE &amp;quot;International Jet Set&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 20:19:27&lt;br /&gt;
    INDEX 01 20:20:20&lt;br /&gt;
  TRACK 09 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Do Nothing&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 24:30:70&lt;br /&gt;
    INDEX 01 24:32:27&lt;br /&gt;
  TRACK 10 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Ghost Town&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 28:23:30&lt;br /&gt;
    INDEX 01 28:23:42&lt;br /&gt;
  TRACK 11 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Why?&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 34:21:37&lt;br /&gt;
    INDEX 01 34:21:47&lt;br /&gt;
  TRACK 12 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Friday Night, Saturday Morning&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 38:16:50&lt;br /&gt;
    INDEX 01 38:16:55&lt;br /&gt;
  TRACK 13 AUDIO&lt;br /&gt;
    TITLE &amp;quot;War Crimes&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 41:50:07&lt;br /&gt;
    INDEX 01 41:51:00&lt;br /&gt;
  TRACK 14 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Racist Friend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 45:50:55&lt;br /&gt;
    INDEX 01 45:51:72&lt;br /&gt;
  TRACK 15 AUDIO&lt;br /&gt;
    TITLE &amp;quot;Nelson Mandela&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 49:35:55&lt;br /&gt;
    INDEX 01 49:38:22&lt;br /&gt;
  TRACK 16 AUDIO&lt;br /&gt;
    TITLE &amp;quot;(What I Like Most About You Is Your) Girlfriend&amp;quot;&lt;br /&gt;
    PERFORMER &amp;quot;The Specials&amp;quot;&lt;br /&gt;
    INDEX 00 54:11:00&lt;br /&gt;
    INDEX 01 54:12:40&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Useful Applications=&lt;br /&gt;
==Playing==&lt;br /&gt;
*[[foobar2000]]&lt;br /&gt;
==Splitting==&lt;br /&gt;
*[[ACDIR]]: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_2.html&lt;br /&gt;
*CueProc: http://nyaochi.sakura.ne.jp/xoops/modules/mysoftwares/tc_6.html&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
*[[shntool]]: http://www.etree.org/shnutils/shntool/&lt;br /&gt;
*WavSplit: http://tangerine.uw.hu/prog/&lt;br /&gt;
==Joining==&lt;br /&gt;
*CueMake&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
==Creating==&lt;br /&gt;
*[[foobar2000]]: http://www.foobar2000.org/&lt;br /&gt;
*[[Goldwave]]: http://www.goldwave.com/&lt;br /&gt;
*Wave Repair: http://www.waverepair.com/&lt;br /&gt;
*CueMaster: http://cuemaster.host.sk/&lt;br /&gt;
*[[CueTools]]: http://www.hydrogenaudio.org/forums/index.php?showtopic=41476&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
*Internal&lt;br /&gt;
**[[Gap settings|Gap Settings]]&lt;br /&gt;
**[[EAC CUE Sheets|EAC Cuesheets]]&lt;br /&gt;
*External&lt;br /&gt;
**Wikipedia article: http://en.wikipedia.org/wiki/Cue_sheet&lt;br /&gt;
**The Goldenhawk website: http://www.goldenhawk.com/&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference&amp;diff=14940</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=14940"/>
		<updated>2006-10-12T04:42:48Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: arrows, one typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fb2k}}&lt;br /&gt;
This article contains information about built-in titleformatting functions and field references with special meaning. References to documentation about fields and function which can only be used in specific components or which are provided by specific components can be found at the end of this article.&lt;br /&gt;
&lt;br /&gt;
A field reference is a field name enclosed in percent signs, for example &#039;&#039;%artist%&#039;&#039;. A function call starts with a dollar sign, followed by the function name and the parameter list. A parameter list can either be empty - denoted as &#039;&#039;()&#039;&#039; - or contain one or more parameters separated by commata, for example &#039;&#039;$abbr(%artist%)&#039;&#039;. Note that there must be no whitespace between the dollar sign and the function name, or the function name and the opening parenthesis of the parameter list.&lt;br /&gt;
&lt;br /&gt;
Please see [[Foobar2000:Titleformat_Introduction|Titleformat Introduction]] for a presentation of titleformat syntax in general.&lt;br /&gt;
&lt;br /&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;
Returns the discnumber. The discnumber is taken from the discnumber tag; if that does not exist, it is taken from the disc tag. If neither exist, the field is undefined.&lt;br /&gt;
&lt;br /&gt;
This is equivalent to the %discnumber% remapping.&lt;br /&gt;
&lt;br /&gt;
=== %discnumber% ===&lt;br /&gt;
Returns the discnumber. The discnumber is taken from the discnumber tag; if that does not exist, it is taken from the disc tag. If neither exist, the field is undefined.&lt;br /&gt;
&lt;br /&gt;
This is equivalent to the %disc% remapping.&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%)&#039;&#039;. Returns the &#039;&#039;title&#039;&#039; tag if available, otherwise it returns the filename excluding the extension.&lt;br /&gt;
&lt;br /&gt;
=== %track% ===&lt;br /&gt;
Returns the tracknumber padded to two digits from the left with zeroes. The tracknumber is taken from the tracknumber tag; if that does not exist, it is taken from the track tag. If neither exist, this field is undefined.&lt;br /&gt;
&lt;br /&gt;
This is equivalent to the %tracknumber% remapping.&lt;br /&gt;
&lt;br /&gt;
=== %tracknumber% ===&lt;br /&gt;
Returns the tracknumber padded to two digits from the left with zeroes. The tracknumber is taken from the tracknumber tag; if that does not exist, it is taken from the track tag. If neither exist, this field is undefined.&lt;br /&gt;
&lt;br /&gt;
This is equivalent to the %track% remapping.&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;
=== $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;
=== $ifequal(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 equal to &#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;
=== $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; → 0, &amp;quot; -12&amp;quot; → -12, but &amp;quot;- 12&amp;quot; → 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;
=== $hsl() ===&lt;br /&gt;
&lt;br /&gt;
Resets the text color to the default color.&lt;br /&gt;
&lt;br /&gt;
=== $hsl(h,s,l) ===&lt;br /&gt;
&lt;br /&gt;
Sets the color for text in the HSL color space. &#039;&#039;h&#039;&#039;, &#039;&#039;s&#039;&#039; and &#039;&#039;l&#039;&#039; are the hue, saturation, and lightness of the color for unselected text. The color for selected text is set to the inverse color.&lt;br /&gt;
The ranges of &#039;&#039;h&#039;&#039;, &#039;&#039;s&#039;&#039;, and &#039;&#039;l&#039;&#039; are from 0 to 240; the function is designed to interpret those values in the same way as the standard Windows color dialog.&lt;br /&gt;
&lt;br /&gt;
=== $hsl(h1,s1,l1,h2,s2,l2) ===&lt;br /&gt;
&lt;br /&gt;
Sets the color for text in the HSL color space. &#039;&#039;h1&#039;&#039;, &#039;&#039;s1&#039;&#039; and &#039;&#039;l1&#039;&#039; are the hue, saturation, and lightness of the color for unselected text. &#039;&#039;h2&#039;&#039;, &#039;&#039;s2&#039;&#039; and &#039;&#039;l2&#039;&#039; are the hue, saturation, and lightness of the color for selected text.&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 of the color for 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;
=== %playback_time% ===&lt;br /&gt;
Returns the elapsed time formatted as [HH:]MM:SS.&lt;br /&gt;
&lt;br /&gt;
=== %playback_time_seconds% ===&lt;br /&gt;
Returns elapsed time in seconds.&lt;br /&gt;
Old version: &amp;lt;code&amp;gt;%_time_elapsed%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== %playback_time_remaining% ===&lt;br /&gt;
Returns remaining time until track ends, formatted as [HH:]MM:SS.&lt;br /&gt;
Old version: &amp;lt;code&amp;gt;%_time_remaining%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== %playback_time_remaining_seconds% ===&lt;br /&gt;
Returns remaining time in seconds.&lt;br /&gt;
Old version: &amp;lt;code&amp;gt;%_time_remaining_seconds%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== %length% ===&lt;br /&gt;
Returns the length of the track formatted as hours, minutes, and seconds.&lt;br /&gt;
Old version: &amp;lt;code&amp;gt;%_time_total%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== %length_ex% ===&lt;br /&gt;
Returns the length of the track formatted as hours, minutes, seconds, and milliseconds.&lt;br /&gt;
&lt;br /&gt;
=== %length_seconds% ===&lt;br /&gt;
Returns the length of the track in seconds.&lt;br /&gt;
Old version: &amp;lt;code&amp;gt;%_time_total_seconds%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== %length_seconds_fp% ===&lt;br /&gt;
Returns the length of the track in seconds as floating point number.&lt;br /&gt;
&lt;br /&gt;
=== %length_samples% ===&lt;br /&gt;
Returns the length of the track in samples.&lt;br /&gt;
&lt;br /&gt;
= Playlist info =&lt;br /&gt;
The following functions and fields are usable for playlist scripts such as masstagger.&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;
The old version &amp;lt;code&amp;gt;%_ispaused%&amp;lt;/code&amp;gt; still works.&lt;br /&gt;
&lt;br /&gt;
=== %list_index% ===&lt;br /&gt;
&lt;br /&gt;
Returns a zero-padded 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;
The old version &amp;lt;code&amp;gt;%_playlist_number%&amp;lt;/code&amp;gt; still works.&lt;br /&gt;
&lt;br /&gt;
=== %list_total% ===&lt;br /&gt;
&lt;br /&gt;
Returns number of items in the playlist.&lt;br /&gt;
&lt;br /&gt;
The old version &amp;lt;code&amp;gt;%_playlist_total%&amp;lt;/code&amp;gt; still works.&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;
=== $ascii(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts &#039;&#039;x&#039;&#039; to ASCII. Any characters that are not present in ASCII will be removed / replaced.&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;
=== $crc32(a) ===&lt;br /&gt;
&lt;br /&gt;
Computes the CRC32 of the string &#039;&#039;a&#039;&#039; as a number. Intended for use in coloring scripts.&lt;br /&gt;
&lt;br /&gt;
Example: $rgb($mod($crc32(%album%),256),128,128)&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;quot;bc&amp;quot;, &#039;&#039;$replace($replace(ab,a,b),b,c)&#039;&#039; → &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;
=== $rot13() ===&lt;br /&gt;
&lt;br /&gt;
Performs [http://en.wikipedia.org/wiki/ROT13 ROT13] transformation to given string.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$rot13(&#039;foobar2000&#039;)&#039;&#039; → &amp;quot;sbbone2000&amp;quot;.&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; → 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; → 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;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 (0,1,2 and so on) tag called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta(artist,1)&#039;&#039; → &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;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;$meta_sep(artist,&#039;, &#039;,&#039;, and &#039;)&#039;&#039; → &amp;quot;He, She, and It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_test(...) === &lt;br /&gt;
Returns &#039;&#039;1&#039;&#039;, if all given tags exist, &#039;&#039;undefined&#039;&#039; otherwise.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_test(artist,title)&#039;&#039; → 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; → 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;
For convenience, the &#039;&#039;&#039;%__name%&#039;&#039;&#039; alias is also available.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$info(channels)&#039;&#039; → 2&lt;br /&gt;
&lt;br /&gt;
Here is an &#039;&#039;&#039;informative&#039;&#039;&#039; list of recognized fields. Some of these depend on the media file type being queried.&lt;br /&gt;
&lt;br /&gt;
(→See also: [[Foobar2000_Talk:Titleformat_Reference#Other_information|Talk page]])&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! field name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#CCF&amp;quot;|&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|codec&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Codec&#039;&#039;&#039; (&#039;&#039;e.g.&#039;&#039; MP3)&lt;br /&gt;
|-&lt;br /&gt;
|codec_profile&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Codec Profile&#039;&#039;&#039; (&#039;&#039;e.g.&#039;&#039; CBR)&lt;br /&gt;
|-&lt;br /&gt;
|samplerate&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Sample Rate&#039;&#039;&#039;, in hertz (&#039;&#039;e.g.&#039;&#039; 44100)&lt;br /&gt;
|-&lt;br /&gt;
|bitrate&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Bitrate&#039;&#039;&#039;, in kilobits per second (&#039;&#039;e.g.&#039;&#039; 320)&lt;br /&gt;
|-&lt;br /&gt;
|tool&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Tool&#039;&#039;&#039; used to produce the file, possibly guessed (&#039;&#039;e.g.&#039;&#039; LAME3.97)&lt;br /&gt;
|-&lt;br /&gt;
|encoding&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Encoding&#039;&#039;&#039; lossiness (&#039;&#039;e.g.&#039;&#039; lossy)&lt;br /&gt;
|-&lt;br /&gt;
|channels&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Channels&#039;&#039;&#039; count (&#039;&#039;e.g.&#039;&#039; 2 &amp;lt;nowiki&amp;gt;[for stereo]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|bitspersample&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Bits Per Sample&#039;&#039;&#039; (&#039;&#039;e.g.&#039;&#039; 16)&lt;br /&gt;
|-&lt;br /&gt;
|tagtype&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Tag Type&#039;&#039;&#039;, comma-separated list of tag formats (&#039;&#039;e.g.&#039;&#039; id3v2|apev2)&lt;br /&gt;
|-&lt;br /&gt;
|cue_embedded&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Embedded Cuesheet&#039;&#039;&#039; presence (&#039;&#039;e.g.&#039;&#039; no &amp;lt;nowiki&amp;gt;[may be empty!]&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|md5&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Audio MD5&#039;&#039;&#039; hash, if container defines it (&#039;&#039;e.g.&#039;&#039; 1E24A910D91EF09A8CF403C9B6963961)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#CCF&amp;quot;|&#039;&#039;&#039;Other&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ENC_DELAY&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|LAME proprietary MP3 &#039;&#039;&#039;enc_delay&#039;&#039;&#039; value (&#039;&#039;e.g.&#039;&#039; 576)&lt;br /&gt;
|-&lt;br /&gt;
|ENC_PADDING&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|LAME proprietary MP3 &#039;&#039;&#039;enc_padding&#039;&#039;&#039; value (&#039;&#039;e.g.&#039;&#039; 1536)&lt;br /&gt;
|-&lt;br /&gt;
|MP3_ACCURATE_LENGTH&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;mp3_accurate_length&#039;&#039;&#039; supported (LAME proprietary header)? (&#039;&#039;e.g.&#039;&#039; yes)&lt;br /&gt;
|-&lt;br /&gt;
|MP3_STEREO_MODE&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|Stereo mode used in MP3 file (&#039;&#039;e.g.&#039;&#039; mono, stereo, joint stereo, etc.)&lt;br /&gt;
|-&lt;br /&gt;
|VERSION&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Version&#039;&#039;&#039; of tool (&#039;&#039;e.g.&#039;&#039; 3.99)&lt;br /&gt;
|-&lt;br /&gt;
|FLAGS&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot;|&#039;&#039;&#039;Flags&#039;&#039;&#039; of tool (&#039;&#039;e.g.&#039;&#039; 22)&lt;br /&gt;
|}&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;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;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. This syntax is from an older version of Foobar2000 {{Foobar2000v08}}. The following fields can be used normally.&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;
==== %lastmodified% ====&lt;br /&gt;
Returns the date and time the file was last modified. Eg: &#039;&#039;2005-12-22 00:04:10&#039;&#039;&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;
==== $extra(foobar2000_version) ====&lt;br /&gt;
Returns a string representing the version of foobar2000.&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;
For example:&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! code&lt;br /&gt;
! output&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;$put(foo,bar)$char(10)&lt;br /&gt;
$get(foo)$char(10)&lt;br /&gt;
$get(Foo)$char(10)&lt;br /&gt;
$puts(foo,2000)$char(10)&lt;br /&gt;
$get(foo)$char(10)&amp;lt;/pre&amp;gt;&lt;br /&gt;
| style=&amp;quot;background-color:#EEF&amp;quot; |&amp;lt;pre&amp;gt;bar&lt;br /&gt;
bar&lt;br /&gt;
bar&lt;br /&gt;
&lt;br /&gt;
2000&amp;lt;/pre&amp;gt;&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 nothing&lt;br /&gt;
&lt;br /&gt;
= Component-provided fields and functions on tracks =&lt;br /&gt;
&lt;br /&gt;
This section lists components that provide additional fields and functions that are useable in the context of any track.&lt;br /&gt;
&lt;br /&gt;
== Playback statistics ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.foobar2000.org/beta/components.html Playback statistics homepage]&lt;br /&gt;
* [[Foobar2000:Titleformat Playback Statistics|Playback statistics titleformat reference]]&lt;br /&gt;
&lt;br /&gt;
= Component-specific fields and functions =&lt;br /&gt;
&lt;br /&gt;
This section lists components that provide additional fields and functions that are only useable in the context of the particular component.&lt;br /&gt;
&lt;br /&gt;
== Album list ==&lt;br /&gt;
&lt;br /&gt;
The official album list component supports creating multiple tree entries using special commands.&lt;br /&gt;
&lt;br /&gt;
* [http://www.foobar2000.org/ Album list homepage]&lt;br /&gt;
* [[Foobar2000:Titleformat Album List|Album list titleformat reference]]&lt;br /&gt;
&lt;br /&gt;
== Columns UI ==&lt;br /&gt;
&lt;br /&gt;
* [http://music.morbo.org/wiki/columns_ui:manual Columns UI homepage]&lt;br /&gt;
* [http://music.morbo.org/wiki/columns_ui:config:global_variables Global variables reference]&lt;br /&gt;
* [http://music.morbo.org/wiki/columns_ui:config:colour_string Playlist colors reference]&lt;br /&gt;
* [http://music.morbo.org/wiki/columns_ui:config:playlist_switcher_titleformatting Playlist switcher reference]&lt;br /&gt;
&lt;br /&gt;
==  CwBowron&#039;s Title formating (foo cwb hooks) ==&lt;br /&gt;
foo_cwb_hooks adds various functions and variables to global title formatting:&lt;br /&gt;
* [[Foobar2000:0.9_CwBowron%27s_Title_formating_%28foo_cwb_hooks%29|cwb_hooks title formatting wiki page]]&lt;br /&gt;
&lt;br /&gt;
= Additional Reading =&lt;br /&gt;
&lt;br /&gt;
* [[Foobar2000:Titleformat_Introduction|Introduction to titleformat scripts]]&lt;br /&gt;
* &#039;&#039;&#039;titleformat_help.html&#039;&#039;&#039; in your Foobar2000 directory (ie C:\Program Files\foobar2000\titleformat_help.html) file:///C:/Program%20Files/foobar2000/titleformat_help.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:foobar2000 Guides|Titleformat Reference]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Replay_Gain&amp;diff=14869</id>
		<title>Replay Gain</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Replay_Gain&amp;diff=14869"/>
		<updated>2006-10-09T02:57:24Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* foobar2000 replaygain scanner */ wav no longer supported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Replaygain&#039;&#039;&#039; is the name of a technique invented to achieve the same playback volume of audio files. It specifies the reference level of 89dB and an algorithm to measure the &#039;&#039;&#039;perceived&#039;&#039;&#039; loudness of audio data.&lt;br /&gt;
&lt;br /&gt;
Replaygain is different from [[Normalization|peak normalization]]. In peak normalization, you merely ensure that the peak amplitude reaches a certain level. This does not ensure equal loudness. The replaygain technique measures the &#039;&#039;effective power&#039;&#039; (i.e. RMS after an &#039;&#039;Equal Loudness Filter&#039;&#039;) of the waveform, and amplifies the waveform accordingly. The result is that replaygained waveforms are usually more uniformly amplified that peak-normalized waveforms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
There are different replaygain implementations, each with its own uses and strength. Most of them use [[metadata]] to indicate the level of the volume change (Volume is adjusted on playback; needs player/decoder support) others modify the audio data itself. Generally it is recommended to use an implementation which uses the metadata and does not touch the audio itself.&lt;br /&gt;
&lt;br /&gt;
In a metadata based solution, information on both types of replaygain can be stored, and the desired playback effect can be switched back and forth in the appropriate player. However, if the audio data is permanently modified, only one type of replaygain can be chosen. Furthermore, if the audio data is modified, you may not be able to restore the original data, especially if the replaygain technique produces a negative amplification.&lt;br /&gt;
&lt;br /&gt;
Replaygain has significant advantages over normalizing. It allows the loudness of a song to be consistant over an entire collection of audio, similar to (but more accurate than) RMS normalizing (this is called &#039;Track Gain&#039;, or &#039;Radio Gain&#039; in earlier parlance). However, it also allows the loudness of an album to be consistant over a entire music collection, allowing the dynamics of album to remain (This is called &#039;Album Gain&#039;, or &#039;Audiophile Gain&#039; in earlier parlance). This is usually very important in classical CDs, as there may be quiet segments and loud segments written into different tracks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3Gain===&lt;br /&gt;
[[MP3Gain]] is an implementation of Replaygain. It either modifies target data reversibly, or attaches metadata.&lt;br /&gt;
&lt;br /&gt;
* Format: [[MP3]]&lt;br /&gt;
* Method: Audio / Meta&lt;br /&gt;
* Limitations: Limited to 1.5dB steps mode, may become irreversible&lt;br /&gt;
* http://mp3gain.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LAME]]===&lt;br /&gt;
&lt;br /&gt;
* Method: Header ([http://gabriel.mp3-tech.org/mp3infotag.html mp3infotag])&lt;br /&gt;
* Notes:&lt;br /&gt;
** Tags added during encoding; not supported by any player yet; Track Gain only&lt;br /&gt;
** ReplayGaining MP3&#039;s are usually done using MP3Gain (see [[Replaygain#MP3Gain|above]]) or [[Replaygain#foobar2000 replaygain scanner|foobar2000]]&lt;br /&gt;
* http://lame.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[MPC]] replaygain===&lt;br /&gt;
&lt;br /&gt;
* Method: Header (similar to Meta data method)&lt;br /&gt;
* Notes: Replaygain values are stored in the header and replaygain is part of the Musepack specifications; therefore any Musepack decoder that does not support replaygain can be considered broken.&lt;br /&gt;
* http://rarewares.org/mpc.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VorbisGain===&lt;br /&gt;
&lt;br /&gt;
* Format: [[Ogg Vorbis]]&lt;br /&gt;
* Method: Meta (in [[Vorbis comment]])&lt;br /&gt;
* http://www.sjeng.org/vorbisgain.html&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; Andavari has provided a very useful script to integrate VorbisGain, which is a CLI tool, into Windows Explorer. Please [[Ogg Vorbis#ReplayGain|check this section]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC / METAFLAC===&lt;br /&gt;
&lt;br /&gt;
* Format: [[FLAC]]&lt;br /&gt;
* Method: Meta (in [[Vorbis comment]])&lt;br /&gt;
* http://flac.sf.net&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===WavPack / WVGAIN===&lt;br /&gt;
&lt;br /&gt;
* Format: [[WavPack]]&lt;br /&gt;
* Method: Meta (in [[APEv2]] tag)&lt;br /&gt;
* http://www.wavpack.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Wavegain===&lt;br /&gt;
&lt;br /&gt;
* Format: waveform&lt;br /&gt;
* Method: Audio&lt;br /&gt;
* Limitations: Irreversible&lt;br /&gt;
* http://www.rarewares.org/files/others/wavegain.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[foobar2000]] replaygain scanner===&lt;br /&gt;
&lt;br /&gt;
* Format:&lt;br /&gt;
** [[MP3]]: Values written to [[APEv2]] or [[ID3v2]] tags.&lt;br /&gt;
** [[MPC]]: Values written to header.&lt;br /&gt;
** [[Ogg Vorbis]]: Values written to [[Vorbis comment]].&lt;br /&gt;
** [[WavPack]]: Values written to [[APEv2]] tags.&lt;br /&gt;
** [[AAC]]: Values written to [[APEv2]] tags.&lt;br /&gt;
** [[MP4]]: Uses its own itunes-compatible tagging system (though itunes does not support replaygain).&lt;br /&gt;
** [[FLAC]]: Values written to [[Vorbis comment]].&lt;br /&gt;
** [[APE]]: Values written to [[APEv2]] tags.&lt;br /&gt;
** Modules ([[MOD]] etc.): Optionally saved into [[APEv2]] tags; otherwise the foobar2000 database is used.&lt;br /&gt;
** All other formats are supported but the replaygain values are saved to the foobar2000 database.&lt;br /&gt;
&lt;br /&gt;
* You can also choose to only have the replaygain values saved in the foobar2000 database and leave the files untouched.&lt;br /&gt;
&lt;br /&gt;
* http://foobar2000.org&lt;br /&gt;
&lt;br /&gt;
===[[MediaMonkey]]===&lt;br /&gt;
&lt;br /&gt;
* Format:&lt;br /&gt;
** [[MP3]]: Values written to [[APEv2]] or [[ID3v2]] tags.&lt;br /&gt;
** [[Ogg Vorbis]]: Values written to [[Vorbis comment]].&lt;br /&gt;
** [[WMA]]: Values stored in MediaMonkey&#039;s MDB database.&lt;br /&gt;
** [[FLAC]]: Values written to [[Vorbis comment]].&lt;br /&gt;
** [[APE]]: Values written to [[APEv2]] tags.&lt;br /&gt;
** [[WAV]]: Values stored in MediaMonkey&#039;s MDB database.&lt;br /&gt;
* In addition to tags, all ReplayGain values are also stored in MediaMonkey&#039;s MDB database&lt;br /&gt;
* Does not support Album/Audiophile replaygain&lt;br /&gt;
* Also capable of (irreversibly) changing the volume of MP3 tracks, similar to [[MP3Gain]]&lt;br /&gt;
* http://www.mediamonkey.com&lt;br /&gt;
&lt;br /&gt;
==Players support==&lt;br /&gt;
&lt;br /&gt;
Replaygain being present in the specs of FLAC, MPC, and APE formats, any player that support those formats usually support replaygain.&lt;br /&gt;
&lt;br /&gt;
The situation with MP3 is rather different, as it was not part of the MP3 specs. The APEv2 tags metadata implementation is somewhat becoming the de-facto standard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
* [[Foobar2000]] supports replaygain in all possible aspects.&lt;br /&gt;
* [[Winamp]]&lt;br /&gt;
** MP3 replaygain support with adequate plugins (e.g. [http://otachan.com/in_!mpg123.html Otachan&#039;s in_!mpg123] - if you can&#039;t read japanese, you can find details [http://www.hydrogenaudio.org/forums/index.php?showtopic=18530 in this thread])&lt;br /&gt;
** [[Ogg Vorbis]] replaygain support&lt;br /&gt;
* [[MediaMonkey]] supports track replaygain only&lt;br /&gt;
* [[XMPlay]] recently implemented replaygain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;...and probably others.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
* [[XMMS]]. Reads replaygain from [[FLAC]], [[MPC]], [[Ogg Vorbis]] ..&lt;br /&gt;
:For [[MP3]], use the CVS version of the [http://xmms-mad.sourceforge.net/ xmms-mad]  mp3 plugin (it&#039;s not yet released as binary, furthermore not available in distribs&#039; versions for now. Meanwhile binaries are available here: [http://perso.crans.org/~krempp/xmms-mad/ custom binaries])&lt;br /&gt;
* [[amarok]]. By using the amarok-script [http://kde-apps.org/content/show.php?content=26073 ReplayGain]&lt;br /&gt;
:And possibly others, since [http://developer.kde.org/~wheeler/taglib.html TagLib] added support for [[APEv2]] tags in [[MP3]] files, players using this library (like [[amaroK]] and [[JuK]]) might support that kind of replaygain tags in the near future.&lt;br /&gt;
* [http://www.sacredchao.net/quodlibet Quod Libet] reads replaygain from [[Ogg Vorbis]], [[MP3]], [[FLAC]], and [[MPC]].&lt;br /&gt;
:Requires support to be enabled (via the appropriate python bindings and libraries) for the above formats. Does not support replaygain values stored in [[APEv2]] tags in [[MP3]]s. Replaygain values are stored in RVA2 id3v2.4 frames. See the [http://www.sacredchao.net/quodlibet/wiki/Development/ID3Notes Quod Libet RVA2 / ReplayGain notes].&lt;br /&gt;
* [http://www.musicpd.org/ Music Player Daemon] (MPD) reads replaygain from [[Ogg Vorbis]], [[FLAC]], and [[MPC]].&lt;br /&gt;
:Foobar2000 style TXXX frames in [[MP3]]s are also supported in the latest development releases.&lt;br /&gt;
&lt;br /&gt;
===Portable devices===&lt;br /&gt;
&lt;br /&gt;
Current development builds of [http://www.rockbox.org/ Rockbox] for the iRiver H100 and H300 series players support replaygain for some encoder formats.  This is a rapidly evolving feature.  There are no other portable players known to support replaygain.&lt;br /&gt;
&lt;br /&gt;
The iPod features &#039;&#039;Soundcheck&#039;&#039;, which seems to produce roughly the same normalization gains as replaygain, but doesn&#039;t provide an Album Gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional reading==&lt;br /&gt;
* [http://replaygain.hydrogenaudio.org Original Replay Gain website]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Replay_Gain Replay Gain] at Wikipedia&lt;br /&gt;
* [http://www.bobulous.org.uk/misc/Replay-Gain.html Replay Gain using Foobar 2000] (how-to).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Signal Processing]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Hydrogenaudio_Knowledgebase:Deletion_requests/ID3v2.4.1&amp;diff=14648</id>
		<title>Hydrogenaudio Knowledgebase:Deletion requests/ID3v2.4.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Hydrogenaudio_Knowledgebase:Deletion_requests/ID3v2.4.1&amp;diff=14648"/>
		<updated>2006-09-30T17:25:10Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: tweak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[:Category:Pages marked for deletion|Back to deletion requests]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==[[:ID3v2.4.1|ID3v2.4.1]]==&lt;br /&gt;
&amp;lt;small&amp;gt;To vote, use this code: {{votecode}}&amp;lt;!-- messy hack--&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;To admins: If a consensus has been reached, add {{endcode}} to the end of this page, and carry out the appropriate action.&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why not kill this page altogether, as if people will go looking for ID3v2.4.1 here...? &amp;lt;small&amp;gt;&amp;amp;ndash; unsigned comment by [[User:pepoluan|pepoluan]], 18:32, 29 September 2006&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Delete&#039;&#039;&#039; -- Maybe we should have only one ID3 related page. However depending on the level of detail it might not be a good idea. &amp;lt;small&amp;gt;&amp;amp;ndash; unsigned comment by [[User:Beto|Beto]], 21:06, 29 September 2006&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Delete&#039;&#039;&#039; and &#039;&#039;&#039;bonk&#039;&#039;&#039; none-singing users on the head with a large hammer {{User:Elliottmobile/sig2}} 09:12, 30 September 2006 (CDT)&lt;br /&gt;
*&#039;&#039;&#039;Move&#039;&#039;&#039; to [[User:DEATH/ID3v2.4.1]]. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 12:23, 30 September 2006 (CDT)&lt;br /&gt;
**And create a redirect to [[ID3v2]] in its place. ID3v2 should have a link to the proposal (when and if it becomes publicly available). &amp;lt;del&amp;gt;--&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 12:24, 30 September 2006 (CDT)&amp;lt;/del&amp;gt; --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 12:25, 30 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Hydrogenaudio_Knowledgebase:Deletion_requests/ID3v2.4.1&amp;diff=14647</id>
		<title>Hydrogenaudio Knowledgebase:Deletion requests/ID3v2.4.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Hydrogenaudio_Knowledgebase:Deletion_requests/ID3v2.4.1&amp;diff=14647"/>
		<updated>2006-09-30T17:24:45Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[:Category:Pages marked for deletion|Back to deletion requests]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==[[:ID3v2.4.1|ID3v2.4.1]]==&lt;br /&gt;
&amp;lt;small&amp;gt;To vote, use this code: {{votecode}}&amp;lt;!-- messy hack--&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;To admins: If a consensus has been reached, add {{endcode}} to the end of this page, and carry out the appropriate action.&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why not kill this page altogether, as if people will go looking for ID3v2.4.1 here...? &amp;lt;small&amp;gt;&amp;amp;ndash; unsigned comment by [[User:pepoluan|pepoluan]], 18:32, 29 September 2006&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Delete&#039;&#039;&#039; -- Maybe we should have only one ID3 related page. However depending on the level of detail it might not be a good idea. &amp;lt;small&amp;gt;&amp;amp;ndash; unsigned comment by [[User:Beto|Beto]], 21:06, 29 September 2006&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Delete&#039;&#039;&#039; and &#039;&#039;&#039;bonk&#039;&#039;&#039; none-singing users on the head with a large hammer {{User:Elliottmobile/sig2}} 09:12, 30 September 2006 (CDT)&lt;br /&gt;
*&#039;&#039;&#039;Move&#039;&#039;&#039; to [[User:DEATH/ID3v2.4.1]]. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 12:23, 30 September 2006 (CDT)&lt;br /&gt;
**And create a redirect to [[ID3]] in its place. ID3 should have a link to the proposal (when and if it becomes publicly available). --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 12:24, 30 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Hydrogenaudio_Knowledgebase:Deletion_requests/ID3v2.4.1&amp;diff=14646</id>
		<title>Hydrogenaudio Knowledgebase:Deletion requests/ID3v2.4.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Hydrogenaudio_Knowledgebase:Deletion_requests/ID3v2.4.1&amp;diff=14646"/>
		<updated>2006-09-30T17:23:40Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: move&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[:Category:Pages marked for deletion|Back to deletion requests]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==[[:ID3v2.4.1|ID3v2.4.1]]==&lt;br /&gt;
&amp;lt;small&amp;gt;To vote, use this code: {{votecode}}&amp;lt;!-- messy hack--&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;To admins: If a consensus has been reached, add {{endcode}} to the end of this page, and carry out the appropriate action.&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why not kill this page altogether, as if people will go looking for ID3v2.4.1 here...? &amp;lt;small&amp;gt;&amp;amp;ndash; unsigned comment by [[User:pepoluan|pepoluan]], 18:32, 29 September 2006&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Delete&#039;&#039;&#039; -- Maybe we should have only one ID3 related page. However depending on the level of detail it might not be a good idea. &amp;lt;small&amp;gt;&amp;amp;ndash; unsigned comment by [[User:Beto|Beto]], 21:06, 29 September 2006&amp;lt;/small&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Delete&#039;&#039;&#039; and &#039;&#039;&#039;bonk&#039;&#039;&#039; none-singing users on the head with a large hammer {{User:Elliottmobile/sig2}} 09:12, 30 September 2006 (CDT)&lt;br /&gt;
*&#039;&#039;&#039;Move&#039;&#039;&#039; to [[User:DEATH/ID3v2.4.1]]. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 12:23, 30 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=APEv2&amp;diff=14611</id>
		<title>APEv2</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=APEv2&amp;diff=14611"/>
		<updated>2006-09-28T07:49:33Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: cat 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;APEv2 is a tagging format derived from [[APEv1]] originally developed for [[MPC]] audio files, and is now also used in [[Monkey&#039;s Audio]], [[WavPack]] and [[OptimFROG]]. It can also be used with other formats when using programs like [[foobar2000]] or [[Tag.exe|Tag]] (a program that can create and read tags). It is comparable in functionality to [[Vorbis comment]]. Just like Vorbis comment it defines some standard fields, but it also defines some formats for those fields (like what a date should look like).&lt;br /&gt;
&lt;br /&gt;
APEv2 also differs from Vorbis comment in the way lists of values are handled. Suppose a certain song has two artists. In Vorbis comment this will result in two ARTIST entries, but in APEv2 this will result in one Artist field with the two artists separated by a null character (a byte with the value zero).&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[APEv2 specification]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Metadata]]&lt;br /&gt;
[[Category:Technical]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Usertalkheader&amp;diff=14556</id>
		<title>Template:Usertalkheader</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Usertalkheader&amp;diff=14556"/>
		<updated>2006-09-26T19:00:47Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: be nice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This code was generated from the &amp;quot;subst:talkheader&amp;quot; template from Wikipedia--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Edited by beto to fit HA wiki--&amp;gt;&lt;br /&gt;
&amp;lt;!-- edited by elliott for user talk pages --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;messagebox standard-talk&amp;quot; id=&amp;quot;talkheader&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;text-align:center;background-color: #FFFFFF; width: 85%; margin-bottom:30px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;border:1px solid #C0C090; background-color: #F8EABA;&amp;quot; |&lt;br /&gt;
This is the user talk page for &amp;lt;font style=&amp;quot;color:blue;&amp;quot;&amp;gt;{{{1|{{SUBPAGENAME}}}}}&amp;lt;/font&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #FFFFFF; text-align:left;&amp;quot; |&lt;br /&gt;
*Be nice, and stay civil.&lt;br /&gt;
*&#039;&#039;&#039;Sign and date your posts&#039;&#039;&#039; using two dashes and four tildes (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--~~~~&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
*Place new comments after existing ones (but within topic sections).&lt;br /&gt;
*Separate topic sections with a &#039;&#039;&#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;==Descriptive&amp;amp;nbsp;header==&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
*Feel free to use these smilies by embedding their codes:&amp;lt;br /&amp;gt; {{smiley|)}} &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{smiley|)}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; {{smiley|D}} &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{smiley|D}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; {{smiley|(}} &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{smiley|(}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; {{smiley|;}} &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{smiley|;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;New to Hydrogenaudio Wiki?&#039;&#039;&#039; [[Main_Page|Welcome]]! You may want to read our [[FAQ|frequently asked questions]].&lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
For user talk pages.&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14545</id>
		<title>User talk:Elliottmobile</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14545"/>
		<updated>2006-09-26T18:40:39Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Talk header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talkheader}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HELLO ELLIOT I AM GREAT HAXOR YOUR WIKI ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== NO ==&lt;br /&gt;
I AM USING THIS COMPUTERWEBNET RESPONSORBORLY ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Eh?==&lt;br /&gt;
&lt;br /&gt;
Welcome Elliott... glad to have someone well-versed with WikiMedia syntax... and what does the above comments supposed to mean? --[[User:Pepoluan|pepoluan]] 09:56, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I thought you were insane, but apparently you are crazy {{slimey|D}} {{smiley|D}} --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 12:48, 22 September 2006 (CDT)&lt;br /&gt;
:Slimey indeed. {{User:Elliottmobile/sig2}} 12:49, 22 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What about loom(tm)? --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 07:49, 25 September 2006 (CDT)&lt;br /&gt;
:&amp;lt;insert blab from MI that I forgot having not played it for years&amp;gt; {{User:Elliottmobile/sig2}} 15:28, 25 September 2006 (CDT)&lt;br /&gt;
::LOL... *fires up ScummVM and chucks in the MI CD* --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 15:46, 25 September 2006 (CDT)&lt;br /&gt;
:::{{smiley|D}}. Oops, I mean {{slimey}} {{User:Elliottmobile/sig2}} 15:49, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Answer to the question on my talk page==&lt;br /&gt;
You can find my considerations on your copyright comments [[User_talk:Beto|here]].{{smiley|)}}--[[User:Beto|Beto]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Beto|talk]] | [[Special:Contributions/Beto|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 16:51, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Please stop meddling==&lt;br /&gt;
There was no reason for you to interfere with the templates on my talk page or the name of the article I am working on that I linked to on my user page. Kindly sod off. -- [[User:Canar|Canar]] 19:37, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Talk header ==&lt;br /&gt;
&lt;br /&gt;
Hi, the talk header is not mandatory for all articles; it&#039;s only optional, and it&#039;s definitely not intended for user talk pages. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:26, 26 September 2006 (CDT)&lt;br /&gt;
:iirc, it was intended for all articles and all major contributors use it on their user talk page. {{User:Elliottmobile/sig2}} 13:28, 26 September 2006 (CDT)&lt;br /&gt;
::Well, it was copied from Wikipedia, and if you look at the Wikipedia version&#039;s &amp;quot;What links here&amp;quot; list, you&#039;ll find thousands (really!) of links coming from Talk pages, and a few links from Wikipedia talk and Template talk pages. I bet you can&#039;t find one coming from a user talk page.&amp;lt;br /&amp;gt;Most major contributors aren&#039;t probably familiar with MediaWiki or Wikipedia. Looks like I&#039;m the one who&#039;s most familiar with how stuff works over there. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:34, 26 September 2006 (CDT)&lt;br /&gt;
:::&amp;quot;Most major contributors aren&#039;t probably familiar with MediaWiki or Wikipedia. Looks like I&#039;m the one who&#039;s most familiar with how stuff works over there.&amp;quot; heh, nope, i&#039;m a very active contributor over there. It&#039;s just that this place isn&#039;t wikipedia. see [[user_talk:pepoluan]] &amp;amp; [[user_talk:beto]] {{User:Elliottmobile/sig2}} 13:36, 26 September 2006 (CDT)&lt;br /&gt;
::::Ah, but pepoluan didn&#039;t know that stub templates go at the bottom and cleanup templates go at the top at Wikipedia. Only I knew that SVG files get rendered to PNG files at Wikipedia.&amp;lt;br /&amp;gt;You&#039;re right that HAK isn&#039;t WP, but I still don&#039;t think the [[Template:Talkheader|talkheader]] was intended for user pages. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:39, 26 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14544</id>
		<title>User talk:Elliottmobile</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14544"/>
		<updated>2006-09-26T18:39:51Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Talk header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talkheader}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HELLO ELLIOT I AM GREAT HAXOR YOUR WIKI ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== NO ==&lt;br /&gt;
I AM USING THIS COMPUTERWEBNET RESPONSORBORLY ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Eh?==&lt;br /&gt;
&lt;br /&gt;
Welcome Elliott... glad to have someone well-versed with WikiMedia syntax... and what does the above comments supposed to mean? --[[User:Pepoluan|pepoluan]] 09:56, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I thought you were insane, but apparently you are crazy {{slimey|D}} {{smiley|D}} --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 12:48, 22 September 2006 (CDT)&lt;br /&gt;
:Slimey indeed. {{User:Elliottmobile/sig2}} 12:49, 22 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What about loom(tm)? --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 07:49, 25 September 2006 (CDT)&lt;br /&gt;
:&amp;lt;insert blab from MI that I forgot having not played it for years&amp;gt; {{User:Elliottmobile/sig2}} 15:28, 25 September 2006 (CDT)&lt;br /&gt;
::LOL... *fires up ScummVM and chucks in the MI CD* --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 15:46, 25 September 2006 (CDT)&lt;br /&gt;
:::{{smiley|D}}. Oops, I mean {{slimey}} {{User:Elliottmobile/sig2}} 15:49, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Answer to the question on my talk page==&lt;br /&gt;
You can find my considerations on your copyright comments [[User_talk:Beto|here]].{{smiley|)}}--[[User:Beto|Beto]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Beto|talk]] | [[Special:Contributions/Beto|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 16:51, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Please stop meddling==&lt;br /&gt;
There was no reason for you to interfere with the templates on my talk page or the name of the article I am working on that I linked to on my user page. Kindly sod off. -- [[User:Canar|Canar]] 19:37, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Talk header ==&lt;br /&gt;
&lt;br /&gt;
Hi, the talk header is not mandatory for all articles; it&#039;s only optional, and it&#039;s definitely not intended for user talk pages. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:26, 26 September 2006 (CDT)&lt;br /&gt;
:iirc, it was intended for all articles and all major contributors use it on their user talk page. {{User:Elliottmobile/sig2}} 13:28, 26 September 2006 (CDT)&lt;br /&gt;
::Well, it was copied from Wikipedia, and if you look at the Wikipedia version&#039;s &amp;quot;What links here&amp;quot; list, you&#039;ll find thousands (really!) of links coming from Talk pages, and a few links from Wikipedia talk and Template talk pages. I bet you can&#039;t find one coming from a user talk page.&amp;lt;br /&amp;gt;Most major contributors aren&#039;t probably familiar with MediaWiki or Wikipedia. Looks like I&#039;m the one who&#039;s most familiar with how stuff works over there. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:34, 26 September 2006 (CDT)&lt;br /&gt;
:::&amp;quot;Most major contributors aren&#039;t probably familiar with MediaWiki or Wikipedia. Looks like I&#039;m the one who&#039;s most familiar with how stuff works over there.&amp;quot; heh, nope, i&#039;m a very active contributor over there. It&#039;s just that this place isn&#039;t wikipedia. see [[user_talk:pepoluan]] &amp;amp; [[user_talk:beto]] {{User:Elliottmobile/sig2}} 13:36, 26 September 2006 (CDT)&lt;br /&gt;
::::Ah, but pepoluan didn&#039;t know that stub templates go at the bottom and cleanup templates go at the top at Wikipedia. Only I knew that SVG files get rendered to PNG files at Wikipedia.&amp;lt;br /&amp;gt;You&#039;re right that HAK isn&#039;t WP, but I still don&#039;t think the [[Template:Talk header|talk header]] was intended for user pages. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:39, 26 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee&amp;diff=14542</id>
		<title>User:Kjoonlee</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Kjoonlee&amp;diff=14542"/>
		<updated>2006-09-26T18:35:21Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, please feel free to leave a message on my talk page.&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14541</id>
		<title>User talk:Elliottmobile</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14541"/>
		<updated>2006-09-26T18:34:05Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Talk header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talkheader}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HELLO ELLIOT I AM GREAT HAXOR YOUR WIKI ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== NO ==&lt;br /&gt;
I AM USING THIS COMPUTERWEBNET RESPONSORBORLY ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Eh?==&lt;br /&gt;
&lt;br /&gt;
Welcome Elliott... glad to have someone well-versed with WikiMedia syntax... and what does the above comments supposed to mean? --[[User:Pepoluan|pepoluan]] 09:56, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I thought you were insane, but apparently you are crazy {{slimey|D}} {{smiley|D}} --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 12:48, 22 September 2006 (CDT)&lt;br /&gt;
:Slimey indeed. {{User:Elliottmobile/sig2}} 12:49, 22 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What about loom(tm)? --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 07:49, 25 September 2006 (CDT)&lt;br /&gt;
:&amp;lt;insert blab from MI that I forgot having not played it for years&amp;gt; {{User:Elliottmobile/sig2}} 15:28, 25 September 2006 (CDT)&lt;br /&gt;
::LOL... *fires up ScummVM and chucks in the MI CD* --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 15:46, 25 September 2006 (CDT)&lt;br /&gt;
:::{{smiley|D}}. Oops, I mean {{slimey}} {{User:Elliottmobile/sig2}} 15:49, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Answer to the question on my talk page==&lt;br /&gt;
You can find my considerations on your copyright comments [[User_talk:Beto|here]].{{smiley|)}}--[[User:Beto|Beto]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Beto|talk]] | [[Special:Contributions/Beto|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 16:51, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Please stop meddling==&lt;br /&gt;
There was no reason for you to interfere with the templates on my talk page or the name of the article I am working on that I linked to on my user page. Kindly sod off. -- [[User:Canar|Canar]] 19:37, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Talk header ==&lt;br /&gt;
&lt;br /&gt;
Hi, the talk header is not mandatory for all articles; it&#039;s only optional, and it&#039;s definitely not intended for user talk pages. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:26, 26 September 2006 (CDT)&lt;br /&gt;
:iirc, it was intended for all articles and all major contributors use it on their user talk page. {{User:Elliottmobile/sig2}} 13:28, 26 September 2006 (CDT)&lt;br /&gt;
::Well, it was copied from Wikipedia, and if you look at the Wikipedia version&#039;s &amp;quot;What links here&amp;quot; list, you&#039;ll find thousands (really!) of links coming from Talk pages, and a few links from Wikipedia talk and Template talk pages. I bet you can&#039;t find one coming from a user talk page.&amp;lt;br /&amp;gt;Most major contributors aren&#039;t probably familiar with MediaWiki or Wikipedia. Looks like I&#039;m the one who&#039;s most familiar with how stuff works over there. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:34, 26 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Canar&amp;diff=14535</id>
		<title>User talk:Canar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Canar&amp;diff=14535"/>
		<updated>2006-09-26T18:28:29Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: /* Removing comments from your talk page */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;No more issue. Baleeted. Thanks, Jan. -- [[User:Canar|Canar]] 15:27, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
Please refrain from re-adding the talkheader template to this page. -- [[User:Canar|Canar]] 17:20, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== In response to you: ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;There was no reason for you to interfere with the templates on my talk page or the name of the article I am working on that I linked to on my user page. Kindly sod off.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
First, talkheader is required to go at the start of all pages. It just does. And I didn&#039;t change any article name. In regards to &amp;quot;Kindy sod off,&amp;quot; would I be right in thinking that&#039;s a personal attack? You obviously canot reason beyond flames thus I will terminate this discussion now. {{User:Elliottmobile/sig2}} 02:16, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
Oh, you meant your incorrect userpage. It means &amp;quot;user page fro a user named Canar:Titl..., not Subpage of Canar&#039;s userpage called Titl...&amp;quot;. I really don&#039;t see how your decisions can override mediawiki conventions. {{User:Elliottmobile/sig2}} 02:22, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
:Your talk page has none. Many users&#039; talk pages have none. Why is mine special? And why do mediawiki &amp;quot;conventions&amp;quot; override a user&#039;s wishes? The point of software is to be usable. My user page is quasi-public. I have it there because it&#039;s easy for me, and I should be the one whose judgement is used in what goes and what doesn&#039;t go on my user page (within obvious reason). As it is, my user page actually has something resembling content, which is more than can be said about yours. As for the &amp;quot;sod off&amp;quot;, I was frustrated by your actions. Perhaps it was not required, but you&#039;re being a hypocrite about the talkheader. Anyhow, I&#039;ve wasted enough time on you. Go away. Leave me alone. kthxbye -- [[User:Canar|Canar]] 21:59, 25 September 2006 (CDT)&lt;br /&gt;
::My talk page has none because nobody has thought to add one yet. Remember, &#039;&#039;anyone&#039;&#039; can change anything, and that includes your wishes. It is not &amp;quot;your document&amp;quot; at all. And, the software defines Something/page as a subpage and properly handles it. On that note...&lt;br /&gt;
&lt;br /&gt;
@@@ This is a header @@@&amp;lt;br /&amp;gt;&lt;br /&gt;
*This is bold*. The formatting is my wishes and you shall not change it. {{User:Elliottmobile/sig2}} 03:09, 26 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Removing comments from your talk page ==&lt;br /&gt;
&lt;br /&gt;
Hi, at Wikipedia, it&#039;s considered bad manners to remove other people&#039;s comments from your talk page. If you want, you can move your talk page to a subpage and create a new talk page. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:25, 26 September 2006 (CDT)&lt;br /&gt;
:Edited. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:28, 26 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14531</id>
		<title>User talk:Elliottmobile</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Elliottmobile&amp;diff=14531"/>
		<updated>2006-09-26T18:26:50Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: Talk header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HELLO ELLIOT I AM GREAT HAXOR YOUR WIKI ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== NO ==&lt;br /&gt;
I AM USING THIS COMPUTERWEBNET RESPONSORBORLY ~[[User:Elliottmobile|Elliottmobile]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Elliottmobile|talk]] | [[Special:Contributions/Elliottmobile|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 03:37, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Eh?==&lt;br /&gt;
&lt;br /&gt;
Welcome Elliott... glad to have someone well-versed with WikiMedia syntax... and what does the above comments supposed to mean? --[[User:Pepoluan|pepoluan]] 09:56, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I thought you were insane, but apparently you are crazy {{slimey|D}} {{smiley|D}} --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 12:48, 22 September 2006 (CDT)&lt;br /&gt;
:Slimey indeed. {{User:Elliottmobile/sig2}} 12:49, 22 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What about loom(tm)? --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 07:49, 25 September 2006 (CDT)&lt;br /&gt;
:&amp;lt;insert blab from MI that I forgot having not played it for years&amp;gt; {{User:Elliottmobile/sig2}} 15:28, 25 September 2006 (CDT)&lt;br /&gt;
::LOL... *fires up ScummVM and chucks in the MI CD* --[[User:Pepoluan|pepoluan]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:pepoluan|talk]] | [[Special:Contributions/pepoluan|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 15:46, 25 September 2006 (CDT)&lt;br /&gt;
:::{{smiley|D}}. Oops, I mean {{slimey}} {{User:Elliottmobile/sig2}} 15:49, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Answer to the question on my talk page==&lt;br /&gt;
You can find my considerations on your copyright comments [[User_talk:Beto|here]].{{smiley|)}}--[[User:Beto|Beto]] &amp;lt;small&amp;gt;&#039;&#039;&#039;([[User_talk:Beto|talk]] | [[Special:Contributions/Beto|contribs]])&#039;&#039;&#039;&amp;lt;/small&amp;gt; 16:51, 18 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Please stop meddling==&lt;br /&gt;
There was no reason for you to interfere with the templates on my talk page or the name of the article I am working on that I linked to on my user page. Kindly sod off. -- [[User:Canar|Canar]] 19:37, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Talk header ==&lt;br /&gt;
&lt;br /&gt;
Hi, the talk header is not mandatory for all articles; it&#039;s only optional, and it&#039;s definitely not intended for user talk pages. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:26, 26 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User_talk:Canar&amp;diff=14529</id>
		<title>User talk:Canar</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User_talk:Canar&amp;diff=14529"/>
		<updated>2006-09-26T18:25:51Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: Removing comments from your talk page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;No more issue. Baleeted. Thanks, Jan. -- [[User:Canar|Canar]] 15:27, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
Please refrain from re-adding the talkheader template to this page. -- [[User:Canar|Canar]] 17:20, 24 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== In response to you: ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;There was no reason for you to interfere with the templates on my talk page or the name of the article I am working on that I linked to on my user page. Kindly sod off.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
First, talkheader is required to go at the start of all pages. It just does. And I didn&#039;t change any article name. In regards to &amp;quot;Kindy sod off,&amp;quot; would I be right in thinking that&#039;s a personal attack? You obviously canot reason beyond flames thus I will terminate this discussion now. {{User:Elliottmobile/sig2}} 02:16, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
Oh, you meant your incorrect userpage. It means &amp;quot;user page fro a user named Canar:Titl..., not Subpage of Canar&#039;s userpage called Titl...&amp;quot;. I really don&#039;t see how your decisions can override mediawiki conventions. {{User:Elliottmobile/sig2}} 02:22, 25 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
:Your talk page has none. Many users&#039; talk pages have none. Why is mine special? And why do mediawiki &amp;quot;conventions&amp;quot; override a user&#039;s wishes? The point of software is to be usable. My user page is quasi-public. I have it there because it&#039;s easy for me, and I should be the one whose judgement is used in what goes and what doesn&#039;t go on my user page (within obvious reason). As it is, my user page actually has something resembling content, which is more than can be said about yours. As for the &amp;quot;sod off&amp;quot;, I was frustrated by your actions. Perhaps it was not required, but you&#039;re being a hypocrite about the talkheader. Anyhow, I&#039;ve wasted enough time on you. Go away. Leave me alone. kthxbye -- [[User:Canar|Canar]] 21:59, 25 September 2006 (CDT)&lt;br /&gt;
::My talk page has none because nobody has thought to add one yet. Remember, &#039;&#039;anyone&#039;&#039; can change anything, and that includes your wishes. It is not &amp;quot;your document&amp;quot; at all. And, the software defines Something/page as a subpage and properly handles it. On that note...&lt;br /&gt;
&lt;br /&gt;
@@@ This is a header @@@&amp;lt;br /&amp;gt;&lt;br /&gt;
*This is bold*. The formatting is my wishes and you shall not change it. {{User:Elliottmobile/sig2}} 03:09, 26 September 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Removing comments from your talk page ==&lt;br /&gt;
&lt;br /&gt;
At Wikipedia, it&#039;s considered bad manners to remove other people&#039;s comments from your talk page. If you want, you can move your talk page to a subpage. --&#039;&#039;&#039;[[User:Kjoonlee|Kjoon]]&#039;&#039;&#039;[[User talk:Kjoonlee|lee]] 13:25, 26 September 2006 (CDT)&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=LAME_Compiles&amp;diff=14150</id>
		<title>LAME Compiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=LAME_Compiles&amp;diff=14150"/>
		<updated>2006-09-22T03:09:24Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: direct link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[LAME]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Transparency&amp;diff=13564</id>
		<title>Transparency</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Transparency&amp;diff=13564"/>
		<updated>2006-09-15T04:57:19Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: input data matters as well&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[psychoacoustics]], &#039;&#039;&#039;transparency&#039;&#039;&#039; is the ideal result of [[lossy]] data compression. If a lossily compressed result is perceptually indistinguishible from the uncompressed input, then the compression can be declared to be transparent. In other words, transparency is the situation where [[artifact]]s are nonexistant or imperceptible.&lt;br /&gt;
&lt;br /&gt;
Transparency, like sound quality, is subjective. It depends most on the listener&#039;s familiarity with artifacts, and to a lesser extent, the compression method, [[bitrate]] used, input characteristics, listening conditions, and listening equipment. &lt;br /&gt;
&lt;br /&gt;
Judging transparency can be difficult due to observation bias, in which subjective like/dislike of a certain compression methodology emotionally influences his/her judgment. This bias is commonly referred to as &#039;&#039;placebo,&#039;&#039; although this use is slightly different from the medical use of the term.&lt;br /&gt;
&lt;br /&gt;
There is no way to prove whether a certain compression methodology is transparent. To scientifically prove that a compression method is &#039;&#039;not&#039;&#039; transparent, double-blind tests may be useful. The [[ABX]] method is normally used.&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Listening Tests]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=XMplay&amp;diff=13563</id>
		<title>XMplay</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=XMplay&amp;diff=13563"/>
		<updated>2006-09-15T01:59:44Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: redirected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[XMPlay]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=XMPlay&amp;diff=13562</id>
		<title>XMPlay</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=XMPlay&amp;diff=13562"/>
		<updated>2006-09-15T01:59:16Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: merged&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;XMPlay&#039;&#039;&#039; is a freeware audio player developed by Ian Luck (Un4Seen Developments), the creator of the audio library BASS. XMPlay supports Ogg Vorbis, MP1, MP2, MP3, WMA, MO3, IT, XM, S3M, MTM, MOD and UMX audio formats and PLS, M3U, ASX and WAX playlists. Support for additional formats can be achieved by plugins.&lt;br /&gt;
&lt;br /&gt;
When XMPlay was first released in 1998, only the XM format was supported, hence the name &amp;quot;XMPlay&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It has a small footprint, and supports plugins, skins, global hotkeys and much more.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[http://www.un4seen.com/xmplay.html XMPlay]&lt;br /&gt;
*[http://www.un4seen.com un4seen developments]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Block_switching&amp;diff=13389</id>
		<title>Block switching</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Block_switching&amp;diff=13389"/>
		<updated>2006-09-11T15:01:30Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: Del merge templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Psychoacoustic model decides when to &#039;&#039;&#039;switch&#039;&#039;&#039; to short blocks and back to long blocks (block switching).&lt;br /&gt;
&lt;br /&gt;
In [[MP3]], switching to short blocks will isolate the attack to 192 sample window, so the oscillations are only spread over 192 samples instead of 576. Block switching is also used by [[Ogg Vorbis]] and [[AAC]], &#039;&#039;(except on windows that can be a power of two only)&#039;&#039;. [[MPC]], being a [[subband|subband coder]] doesn&#039;t make use of block switching, &#039;&#039;(although it is implemented and can be used)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Switching to short blocks and increasing of the [[bitrate]] to encode a series of [[MDCT]] coefficients of a particular [[transient]] is one way to combat [[Pre echo]].&lt;br /&gt;
&lt;br /&gt;
==Long blocks==&lt;br /&gt;
Audio encoding systems will commonly summarise the sound energy in one small stretch of time at a time. The duration of a single summarisation is also called a [[window]] and once a window of sound has been quantised, selected and packed, it can be considered as an individual block of audio information to be finaly stored in a frame.&lt;br /&gt;
&lt;br /&gt;
Available mathematics used to summarise one block at a time can struggle with evenly representing details throughout a window&#039;s duration. There may be a tendency to mirror features at the start of the window onto the other end of the window, or the ends of the window might be the most efficient place to have details occur, it will depend on the particular mathematical transformation used.&lt;br /&gt;
With such variance in transformation accuracy throughout each block, varying the size of blocks to best fit over the actual details present in the audio stream increases the overall accuracy of the encoding.&lt;br /&gt;
&lt;br /&gt;
[[LAME]] has only two block sizes available, long blocks and short blocks. In Lame&#039;s case Short blocks require more data to describe less time than Long blocks so they are only selected when they significantly improve the alignment of transformation windows to audio details.&lt;br /&gt;
&lt;br /&gt;
==Additional reading==&lt;br /&gt;
&lt;br /&gt;
Some Java applets to examine fourier series behaviour (note that [[MDCT]] behaviour is not totally identical):&lt;br /&gt;
&lt;br /&gt;
*; http://www.jhu.edu/~signals/fourier2/ : You can draw a sharp attack here, and use calculate with a large number of coefficients... if you start to reduce the number of coefficients you will see the [[pre echo]] appear.&lt;br /&gt;
&lt;br /&gt;
*; http://www.gac.edu/~huber/fourier : Doesnt seem to work in netscape. iirc this one lets you listen to the sound.&lt;br /&gt;
&lt;br /&gt;
*; http://www.univie.ac.at/future.media/moe/galerie/fourier/fourier.html : Maths online fourier series applet.&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Long_block&amp;diff=13387</id>
		<title>Long block</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Long_block&amp;diff=13387"/>
		<updated>2006-09-11T15:00:28Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: #REDIRECT Block switching&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Block switching]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Short_block&amp;diff=13386</id>
		<title>Short block</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Short_block&amp;diff=13386"/>
		<updated>2006-09-11T15:00:13Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: #REDIRECT Block switching&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Block switching]]&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Block_switching&amp;diff=13385</id>
		<title>Block switching</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Block_switching&amp;diff=13385"/>
		<updated>2006-09-11T14:59:44Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: simple merge from old version of Long block&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{merge-from|Short block}}&lt;br /&gt;
{{merge-from|Long block}}&lt;br /&gt;
&lt;br /&gt;
The Psychoacoustic model decides when to switch to short blocks and back to long blocks (block switching).&lt;br /&gt;
&lt;br /&gt;
In [[MP3]], switching to short blocks will isolate the attack to 192 sample window, so the oscillations are only spread over 192 samples instead of 576. Block switching is also used by [[Ogg Vorbis]] and [[AAC]], &#039;&#039;(except on windows that can be a power of two only)&#039;&#039;. [[MPC]], being a [[subband|subband coder]] doesn&#039;t make use of block switching, &#039;&#039;(although it is implemented and can be used)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Switching to short blocks and increasing of the [[bitrate]] to encode a series of [[MDCT]] coefficients of a particular [[transient]] is one way to combat [[Pre echo]].&lt;br /&gt;
&lt;br /&gt;
==Long blocks==&lt;br /&gt;
Audio encoding systems will commonly summarise the sound energy in one small stretch of time at a time. The duration of a single summarisation is also called a [[window]] and once a window of sound has been quantised, selected and packed, it can be considered as an individual block of audio information to be finaly stored in a frame.&lt;br /&gt;
&lt;br /&gt;
Available mathematics used to summarise one block at a time can struggle with evenly representing details throughout a window&#039;s duration. There may be a tendency to mirror features at the start of the window onto the other end of the window, or the ends of the window might be the most efficient place to have details occur, it will depend on the particular mathematical transformation used.&lt;br /&gt;
With such variance in transformation accuracy throughout each block, varying the size of blocks to best fit over the actual details present in the audio stream increases the overall accuracy of the encoding.&lt;br /&gt;
&lt;br /&gt;
[[LAME]] has only two block sizes available, long blocks and short blocks. In Lame&#039;s case Short blocks require more data to describe less time than Long blocks so they are only selected when they significantly improve the alignment of transformation windows to audio details.&lt;br /&gt;
&lt;br /&gt;
==Additional reading==&lt;br /&gt;
&lt;br /&gt;
Some Java applets to examine fourier series behaviour (note that [[MDCT]] behaviour is not totally identical):&lt;br /&gt;
&lt;br /&gt;
*; http://www.jhu.edu/~signals/fourier2/ : You can draw a sharp attack here, and use calculate with a large number of coefficients... if you start to reduce the number of coefficients you will see the [[pre echo]] appear.&lt;br /&gt;
&lt;br /&gt;
*; http://www.gac.edu/~huber/fourier : Doesnt seem to work in netscape. iirc this one lets you listen to the sound.&lt;br /&gt;
&lt;br /&gt;
*; http://www.univie.ac.at/future.media/moe/galerie/fourier/fourier.html : Maths online fourier series applet.&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13073</id>
		<title>Template:Merge-to</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13073"/>
		<updated>2006-09-06T23:42:56Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: left&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;[[Image:Merge-to.gif|left]] It has been suggested that this article or section be [[Wikipedia:Merging and moving pages|merged]] into &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039;. ([[{{{2|:{{NAMESPACE}} talk:{{{1}}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Items to be merged|{{PAGENAME}} (into {{{1}}})]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13072</id>
		<title>Template:Merge-from</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13072"/>
		<updated>2006-09-06T23:42:46Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: left&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;[[Image:Merge-from.gif|left]] It has been suggested that &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039; be [[Wikipedia:Merging and moving pages|merged]] into this article or section. ([[{{{2|:{{NAMESPACE}} talk:{{PAGENAMEE}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;[[Category:Items to be merged|{{PAGENAME}}]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge&amp;diff=13071</id>
		<title>Template:Merge</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge&amp;diff=13071"/>
		<updated>2006-09-06T23:41:51Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;[[Image:Merge.gif|left]] It has been suggested that this article or section be [[Wikipedia:Merging and moving pages|merged]] with &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039;. ([[{{{2|:{{NAMESPACE}} talk:{{PAGENAMEE}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;[[Category:Items to be merged|{{PAGENAME}}]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Merge.gif&amp;diff=13070</id>
		<title>File:Merge.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Merge.gif&amp;diff=13070"/>
		<updated>2006-09-06T23:40:03Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: PD image from Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PD image from Wikipedia&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13069</id>
		<title>Template:Merge-from</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13069"/>
		<updated>2006-09-06T23:39:32Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;[[Image:Merge-from.gif]] It has been suggested that &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039; be [[Wikipedia:Merging and moving pages|merged]] into this article or section. ([[{{{2|:{{NAMESPACE}} talk:{{PAGENAMEE}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;[[Category:Items to be merged|{{PAGENAME}}]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Merge-from.gif&amp;diff=13067</id>
		<title>File:Merge-from.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Merge-from.gif&amp;diff=13067"/>
		<updated>2006-09-06T23:38:20Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: PD image from Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PD image from Wikipedia&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13066</id>
		<title>Template:Merge-to</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13066"/>
		<updated>2006-09-06T23:37:30Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;[[Image:Merge-to.gif]] It has been suggested that this article or section be [[Wikipedia:Merging and moving pages|merged]] into &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039;. ([[{{{2|:{{NAMESPACE}} talk:{{{1}}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Items to be merged|{{PAGENAME}} (into {{{1}}})]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=File:Merge-to.gif&amp;diff=13065</id>
		<title>File:Merge-to.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=File:Merge-to.gif&amp;diff=13065"/>
		<updated>2006-09-06T23:37:12Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: PD image from Wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PD image from Wikipedia&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13064</id>
		<title>Template:Merge-to</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13064"/>
		<updated>2006-09-06T23:32:19Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: try items&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;→&lt;br /&gt;
 It has been suggested that this article or section be [[Wikipedia:Merging and moving pages|merged]] into &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039;. ([[{{{2|:{{NAMESPACE}} talk:{{{1}}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Items to be merged|{{PAGENAME}} (into {{{1}}})]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13063</id>
		<title>Template:Merge-from</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13063"/>
		<updated>2006-09-06T23:31:40Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: try items&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;← It has been suggested that &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039; be [[Wikipedia:Merging and moving pages|merged]] into this article or section. ([[{{{2|:{{NAMESPACE}} talk:{{PAGENAMEE}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;[[Category:Items to be merged|{{PAGENAME}}]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13061</id>
		<title>Template:Merge-from</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13061"/>
		<updated>2006-09-06T23:26:40Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;← It has been suggested that &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039; be [[Wikipedia:Merging and moving pages|merged]] into this article or section. ([[{{{2|:{{NAMESPACE}} talk:{{PAGENAMEE}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;[[Category:{{#if:{{NAMESPACE}}|Items|Articles}} to be merged|{{PAGENAME}}]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13060</id>
		<title>Template:Merge-to</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13060"/>
		<updated>2006-09-06T23:25:32Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;→&lt;br /&gt;
 It has been suggested that this article or section be [[Wikipedia:Merging and moving pages|merged]] into &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039;. ([[{{{2|:{{NAMESPACE}} talk:{{{1}}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:{{#if:{{NAMESPACE}}|Items|Articles}} to be merged|{{PAGENAME}} (into {{{1}}})]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13059</id>
		<title>Template:Merge-from</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-from&amp;diff=13059"/>
		<updated>2006-09-06T23:23:22Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;&amp;lt;!--PNG images containing transparencies do not display properly for some users.  Please consider this fact before replacing the already tiny GIF file.--&amp;gt;← It has been suggested that &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039; be [[Wikipedia:Merging and moving pages|merged]] into this article or section. ([[{{{2|:{{NAMESPACE}} talk:{{PAGENAMEE}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;[[Category:{{#if:{{NAMESPACE}}|Items|Articles}} to be merged|{{PAGENAME}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13057</id>
		<title>Template:Merge-to</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Template:Merge-to&amp;diff=13057"/>
		<updated>2006-09-06T23:20:48Z</updated>

		<summary type="html">&lt;p&gt;Kjoonlee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;messagebox merge&amp;quot;&amp;gt;&amp;lt;!--PNG images containing transparencies do not display properly for some users.  Please consider this fact before replacing the already tiny GIF file.--&amp;gt;←&lt;br /&gt;
 It has been suggested that this article or section be [[Wikipedia:Merging and moving pages|merged]] into &#039;&#039;[[:{{NAMESPACE}}:{{{1}}}|{{{1}}}]]&#039;&#039;. ([[{{{2|:{{NAMESPACE}} talk:{{{1}}}}}}|Discuss]])&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:{{#if:{{NAMESPACE}}|Items|Articles}} to be merged|{{PAGENAME}} (into {{{1}}})]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kjoonlee</name></author>
	</entry>
</feed>