TAK: Difference between revisions

From Hydrogenaudio Knowledgebase
(linkified lossless in first sentence)
(General update and rewrite)
Line 6: Line 6:
| maintainer = Thomas Becker
| maintainer = Thomas Becker
| recommended_encoder = TAK encoder
| recommended_encoder = TAK encoder
| recommended_text = TAK v2.3.0 (2013-06-18)
| recommended_text = TAK v2.3.1 (2021-03)
| website = [http://thbeck.de/Tak/Tak.html ThBeck.de/Tak/Tak.html] ''(German)''
| website = [http://thbeck.de/Tak/Tak.html ThBeck.de/Tak/Tak.html] ''(German)''
}}
}}


== Description ==
'''Tom's lossless Audio Kompressor''' ('''TAK''') is a [[lossless]] audio compressor for the Windows platform (also known to work with Wine). It comes with both a command-line executable and a GUI, as well as a [[Winamp]] plugin.
'''Tom's lossless Audio Kompressor''' ('''TAK''') is a [[lossless]] audio compressor which promises compression performance similar to [[Monkey's Audio]] “High” and decompression speed similar to [[Free Lossless Audio Codec|FLAC]].
 
TAK has gained recognition for its performance figures: it has been measured to achieve compression like [[Monkey's Audio]] “High” at same encoding time and ditto for the even higher-compressiong[[OptimFrog]] “Normal” - while at the same time decoding at speed (CPU load) second only to [[Free Lossless Audio Codec|FLAC]]. In the same tests (see the Links section), it was able beat every FLAC setting simultaneously on size and encoding time, and [[WavPack]]/[[ALAC]] also on decoding time.
 
 


=== Features ===
== Features ==
* High compression
* Fast compression and decompression speed
* Streaming support (necessary headers for decompressing the audio are written to the stream every 2 seconds)
* Streaming support (necessary headers for decompressing the audio are written to the stream every 2 seconds)
* Seeking without seek table
* Piping support for encoding
* Piping support for encoding
* Error tolerance (single bit error will never affect more than 250 ms)
* Error handling: each frame protected by a 24-bit checksum for detection (also optional MD5 audio checksum for the entire file), and the decoder tolerates errors in that a single bit error will never affecting more than 250 ms
* Error detection (each frame protected by a 24-bit checksum (CRC))
* High-resolution audio support: up to 192 kHz sampling rate and 24-bit/channel
* High-resolution (up to 24-bit/channel) audio support
* Support for up to six channels.
* Support for up to 192 Khz Audio
* Tagging: APEv2 tags at end of file.
* Seeking without seek table
* RIFF chunks supported.
* APEv2 tags supported at end of file
 
=== Limitations ===
* Currently there is no hardware supporting the format.  The software is closed-source, but ffmpeg offers an open-source decoder.
* No Unicode support as of version 2.3.1.
* Does not support floating-point PCM (for that, use WavPack or Optimfrog).
* It is a lossless-only format, with no hybrid lossless/lossy mode (for that use WavPack or Optimfrog; for advanced users, it can be used with [[LossyWav]]).
 


=== Pros ===
== Software support ==
* Fast encoding speed (while providing better compression TAK encodes as fast as [[Free Lossless Audio Codec|FLAC]] -8 in TAK's “Insane” and several times faster in “Turbo” mode)
* Fast decompression speed (on par with FLAC / [[WavPack]])
* Good compression levels (on par with [[Monkey's Audio]] High)
* Error Robustness
* Fast Seeking


=== Cons ===
ffmpeg can decode TAK files on several platforms, and both the GUI (Tak.exe) and the command-line program (Takc.exe) work with [http://www.winehq.org/ Wine].
* Closed Source
* No hardware support


The [http://picard.musicbrainz.org/ MusicBrainz Picard] tagger (multi-platform) supports TAK since version 0.11.


== Software support ==
=== Windows-specific ===
=== Windows ===
* [http://thbeck.de/Download/TAK_2.3.1.zip TAK 2.3.1 download link] - Official release which consists of a CLI, a GUI, a [[Winamp]] plugin, the SDK, and the decoding library.
* [http://thbeck.de/Download/TAK_2.3.0.zip TAK 2.3.0] - Official release which consists of a CLI, a GUI, a [[Winamp]] plugin, the SDK, and the decoding library.
* [https://www.foobar2000.org/components/view/foo_input_tak TAK Decoder 0.5.4] - Plugin for [[foobar2000]] (supports tagging and [[ReplayGain]], uses the 2.3.1 decoding library).
* [http://www.foobar2000.org/components/view/foo_input_tak TAK Decoder 0.4.8] - Plugin for [[foobar2000]] (supports tagging and [[ReplayGain]]).
* [http://www.liviocavallo.altervista.org/ dsfTAKSource 0.0.1.6] - DirectShow source filter which uses the official decoding library to play TAK-files in Windows Media Player, Media Player Classic - Home Cinema, Zoom Player and alike.
* [http://www.liviocavallo.altervista.org/ dsfTAKSource 0.0.1.6] - DirectShow source filter which uses the official decoding library to play TAK-files in Windows Media Player, Media Player Classic - Home Cinema, Zoom Player and alike.
* [http://rwijnsma.home.xs4all.nl/dc-bsm/index.htm DC-Bass Source Mod] - DirectShow source filter which uses the official decoding library to play TAK-files, amongst many others, in any DirectShow media player (as mentioned above).
* [http://rwijnsma.home.xs4all.nl/dc-bsm/index.htm DC-Bass Source Mod] - DirectShow source filter which uses the official decoding library to play TAK-files, amongst many others, in any DirectShow media player (as mentioned above).
Line 48: Line 50:
* [[Mp3tag]] – universal tag editor with support for TAK
* [[Mp3tag]] – universal tag editor with support for TAK
* [http://shnutils.freeshell.org/shntool/ shntool] (since version 3.0.6)
* [http://shnutils.freeshell.org/shntool/ shntool] (since version 3.0.6)
* [http://picard.musicbrainz.org/ MusicBrainz Picard] (since version 0.11)


=== Linux ===
* ffmpeg can demux, decode and parse TAK since commit d7a473926504e2acfa6ae3bead0938e1f4e03441:[http://git.videolan.org/?p=ffmpeg.git;a=commit;h=d7a473926504e2acfa6ae3bead0938e1f4e03441]. First official release that supports TAK decoding is 1.1.
* The GUI program (Tak.exe) and the command-line program (Takc.exe) work with [http://www.winehq.org/ Wine].
* <s>[http://caudec.net/ caudec]</s> is a command-line tool that can encode and decode TAK files, using the official binary (Takc.exe) with Wine (see: <s>[http://caudec.net/documentation/windowscodecs/ installation instructions]</s>). Caudec can also test file integrity and compute (and tag) Replaygain data. While it hasn't been tested at the time of writing, it is possible that TAK support in caudec works on OS X as well.
* [http://picard.musicbrainz.org/ MusicBrainz Picard] (since version 0.11)


== Hardware support ==
* None




== Recommended Settings ==
== Using TAK ==
* Default compression: “-p2” (formerly ''Normal'') is the most attractive setting, providing an excellent compromise between compression and encoding speed. (At compression levels close to [[Monkey's Audio]] High (<0.4% difference), it is able to encode more quickly.)
takc -e [input file]
* Highest compression: “-pMax” (same as -p4m) (This will create files which are comparable in size to file created using [[Monkey's Audio]] High. Decompression speed is comparable to [[WavPack]] Normal.)
takc -e -pMax [input file]
* Fastest compression: “-p0” (This will create files which are comparable in size to [[Monkey's Audio]] Fast or [[WavPack]] High. Decompression speed is comparable to [[Free Lossless Audio Codec|FLAC]] 0.)
takc -e -p0 [input file]


=== TAK Performance Graph ===
For encoding/decoding through other software, see heading below; you can pass command-line options as given in this section
[[Image:TAK_performance_graph_1-0-4.png|frame|center|Graph showing encoding and decoding rate against compression, using data from Synthetic Soul's test on TAK 1.0.4<br />(see [[TAK#External Links|External Links]])]]


=== Encoding vs. decoding vs test ===
The following is a selection of command-line parameters which in the GUI are accessed through buttons and checkboxes.
* -e encodes, -d decodes; also, it can run test encoding/decoding by -te resp. -t.
* -v verifies upon encoding; -md5 adds audio MD5 checksum for later verification (like also supported by FLAC and WavPack).


== Using TAK ==
=== TAK with [[foobar2000]] ===
* Copy the takc.exe to your [[foobar2000]] directory
* Go to File → Preferences → Tools → Converter
* Set it up as shown:
[[Image:Tak_foobar_converter.png|frame|center|Screenshot of foobar 0.9.5 Converter settings for TAK 1.0.3]]
'''Note:''' replace -p2 with the desired compression level.


* TAK introduced encoding from STDIN in version 1.0.3, eliminating the need for a temporary file and greatly improving overall compression time. If you are using an earlier version of TAK use the following command line instead:
=== Compression parameters and performance ===
  -e -p2 %s %d
The compression options are displayed by name in the GUI. The compression options range from -p0 to -p4, with each of the having an optional “m” or “e” modifier for additional compression at the expense of encoding time, making for fifteen in total: -p0, -p0e, -p0m etc. Although the -p3's decode faster (= at lower CPU load) than the -p4's etc., the differences are much smaller than migrating to any other lossless decoder, and all are second only to FLAC in decoding speed.
* Use [[APEv2 specification|APEv2]] tagging (will be used as internal tagging)
* -p2 is the current default option.  It is measured to compress on par with Monkey's “Normal”, but encoding at speeds between WavPack and FLAC default options.
* -p0 is the fastest option, encoding around WavPack default and FLAC -6, but 2-3 times faster.
* -p4m is the slowest option yields the highest compression (though at very small improvement over -p4e), encoding in size and speed on par with OptimFrog “Normal”, slightly between Monkey's “High” and “Extra high”, while decoding at 10-15 percent of the CPU load.
* -p3: In the performance test in the links, this is where TAK reaches Monkey's “High” in compression and encoding speed.
 
=== Command-line examples, including pipe redirection ===
Basic encoding resp. decoding commands are
  Takc -e input.wav
Takc -d input.tak


=== TAK with EAC ===
Example with more parameters: The following will encode input.wav to output.tak using compression level “p3e”, write an MD5 checksum, and afterwards verify the encoded file:
Please read the [[EAC and TAK|wiki guide]], which details how to create TAK files with [[Exact Audio Copy|EAC]].
Takc -e -p3e -md5 -v input.wav output.tak


=== Converting TAK using pipe ===
Examples decoding TAK with pipe to .mp3/.opus/.flac/.wv:
  Takc.exe -d input.tak - | lame.exe -V 6 - output.mp3
  Takc.exe -d input.tak - | lame.exe -V 6 - output.mp3
  Takc.exe -d input.tak - | opusenc.exe --bitrate 64 - output.opus
  Takc.exe -d input.tak - | opusenc.exe --bitrate 64 - output.opus
Line 93: Line 85:
  Takc.exe -d input.tak - | wavpack.exe -hhx - output.wv
  Takc.exe -d input.tak - | wavpack.exe -hhx - output.wv


  flac.exe -dc input.flac | Takc.exe -e -pMax - output.tak
Examples encoding TAK from FLAC, WavPack resp. arbitrary ffmpeg-supported format:
  wvunpack.exe input.wv - | Takc.exe -e -pMax - output.tak
  flac.exe -dc input.flac | Takc.exe -e -p1e - output.tak
  ffmpeg.exe -i input.xxx -f wav - | Takc.exe -e -pMax '''-ihs''' - output.tak
  wvunpack.exe input.wv - | Takc.exe -e -p4m - output.tak
  ffmpeg.exe -i input.xxx -f wav - | Takc.exe -e -p0 '''-ihs''' - output.tak




== Future Features ==
* Unicode support
* MD5 audio checksums for verification and identification
* A German version
* Embedded cue sheets
* Embedded cover art
* Multichannel audio


== Using TAK in other applications ==


== Frequently Asked Questions ==
 
; Is the codec safe for use/definitely lossless?
=== TAK with [[foobar2000]] ===
: Yes, TAK is verified as being lossless, as determined through rigorous testing by the author and satisfied users. To check, convert a WAV to TAK and back and compare the two, for instance using [[Foobar2000:Foobar2000|foobar2000]]'s [[Foobar2000:Components/Binary Comparator (foo_bitcompare)|Binary Comparator]].
For decoding, use the [https://www.foobar2000.org/components/view/foo_input_tak foo_input_tak] component (current version using the 2.3.1 decoding library).
; Why should I use TAK?
 
: TAK offers high ratios of compression but also great decoding speeds.
For encoding:
; What can I compress with TAK?
* Select files, right-click, select Convert and the “...
: TAK 1.0 can compress any integer-format (up to 24 bits per channel) PCM RIFF WAVE file (.WAV). Piping support is implemented as of v1.0.3, so converting lossless files to WAV first is not necessary: users can simply pipe the decompressed output from their decoder of choice directly into TAK's encoder.
* Under Output format, click Add New and set it up as shown below ('''note:''' replace -p2 with the desired compression level).  
; What about hardware support?
* Upon first conversion, foobar2000 will ask you to navigate to locate Takc.exe .
: There is none at the moment. However, ''-p0'', ''-p1'' and ''-p2'' are the candidates for most suitable settings for hardware.
[[Image:Tak_foobar_converter.png|frame|center|Screenshot of foobar 0.9.5 Converter settings for TAK 1.0.3]]
; Will the source be opened?
 
: The official encoder and decoder are currently closed-source. Thomas has expressed an intention to open the source of the decoder at some point in time, stipulating preconditions of its first being further refined, ported to C or C++, and documented. This may or may not lead to releases of other code. However, as of June of 2013, he feels that “a lot of (not very exciting) work is required” until the decoding source would be ready to be published, and that may or may not happen in the foreseeable future. Such questions generally generate more noise than fruitful discussion, so it is best to wait and see what happens. In any case, there is an independently implemented open source decoder available, bundled with ffmpeg.
 
=== TAK with [[Exact Audio Copy]] ===
Please read the [[EAC and TAK|wiki guide]], which details how to create TAK files with [[Exact Audio Copy|EAC]].




== External Links ==
== Links ==
* [http://thbeck.de/Tak/Tak.html thbeck.de/Tak/Tak.html] – Official Website ''(german)''
* [http://thbeck.de/Tak/Tak.html] – Official Website ''(German)''
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=101386 TAK 2.3.0 Discussion Thread on HA] ''(english)''
* [https://hydrogenaud.io/index.php?topic=120760.0 TAK 2.3.1 Discussion Thread on HA]
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=89610 TAK 2.2.0 Discussion Thread on HA] ''(english)''
* [https://hydrogenaud.io/index.php?showtopic=101386 TAK 2.3.0 Discussion Thread on HA]
* <s>[http://synthetic-soul.co.uk/comparison/lossless/ synthetic-soul.co.uk/comparison/lossless] – Comparison with Other Codecs (by Synthetic Soul) </s>
* [https://hydrogenaud.io/index.php?showtopic=89610 TAK 2.2.0 Discussion Thread on HA]
* [http://flac.sourceforge.net/comparison.html flac.sourceforge.net/comparison.html] – An Updated Comparison (from FLAC Homepage)
* [https://hydrogenaud.io/index.php/topic,43179.0.html First HA discussion thread, working title ''Yet another lossless audio compressor'']
* [http://audiograaf.nl/downloads.html Martijn van Beurden's lossless performance test] (Results retrieved from revision 4, the CDDA section.)
* [[Lossless_comparison| HA Wiki's Lossless Codec Comparison]] originally by [[User:Rjamorim|Rjamorim]]


{{navbox audio codecs}}


[[Category:Lossless]]
[[Category:Codecs]]
[[Category:Encoder/Decoder]]

Revision as of 16:20, 1 January 2022

Tom's lossless Audio Kompressor (TAK) is a lossless audio compressor for the Windows platform (also known to work with Wine). It comes with both a command-line executable and a GUI, as well as a Winamp plugin.

TAK has gained recognition for its performance figures: it has been measured to achieve compression like Monkey's Audio “High” at same encoding time and ditto for the even higher-compressiongOptimFrog “Normal” - while at the same time decoding at speed (CPU load) second only to FLAC. In the same tests (see the Links section), it was able beat every FLAC setting simultaneously on size and encoding time, and WavPack/ALAC also on decoding time.


Features

  • Streaming support (necessary headers for decompressing the audio are written to the stream every 2 seconds)
  • Seeking without seek table
  • Piping support for encoding
  • Error handling: each frame protected by a 24-bit checksum for detection (also optional MD5 audio checksum for the entire file), and the decoder tolerates errors in that a single bit error will never affecting more than 250 ms
  • High-resolution audio support: up to 192 kHz sampling rate and 24-bit/channel
  • Support for up to six channels.
  • Tagging: APEv2 tags at end of file.
  • RIFF chunks supported.

Limitations

  • Currently there is no hardware supporting the format. The software is closed-source, but ffmpeg offers an open-source decoder.
  • No Unicode support as of version 2.3.1.
  • Does not support floating-point PCM (for that, use WavPack or Optimfrog).
  • It is a lossless-only format, with no hybrid lossless/lossy mode (for that use WavPack or Optimfrog; for advanced users, it can be used with LossyWav).


Software support

ffmpeg can decode TAK files on several platforms, and both the GUI (Tak.exe) and the command-line program (Takc.exe) work with Wine.

The MusicBrainz Picard tagger (multi-platform) supports TAK since version 0.11.

Windows-specific

  • TAK 2.3.1 download link - Official release which consists of a CLI, a GUI, a Winamp plugin, the SDK, and the decoding library.
  • TAK Decoder 0.5.4 - Plugin for foobar2000 (supports tagging and ReplayGain, uses the 2.3.1 decoding library).
  • dsfTAKSource 0.0.1.6 - DirectShow source filter which uses the official decoding library to play TAK-files in Windows Media Player, Media Player Classic - Home Cinema, Zoom Player and alike.
  • DC-Bass Source Mod - DirectShow source filter which uses the official decoding library to play TAK-files, amongst many others, in any DirectShow media player (as mentioned above).
  • LAV Filters - Set of open-source DirectShow filters which uses FFMpeg's reverse-engineered decoder to play TAK-files in any DirectShow media player.
  • VLC Media Player - Can: transcode from/play (no encoding); since at least version 2.2.0
  • Media Player Classic - BE - DirectShow media player with an internal TAK source filter which uses FFMpeg's reverse-engineered decoder to play TAK-files. The internal TAK source filter also supports embedded cue-sheets.
  • Mp3tag – universal tag editor with support for TAK
  • shntool (since version 3.0.6)



Using TAK

For encoding/decoding through other software, see heading below; you can pass command-line options as given in this section

Encoding vs. decoding vs test

The following is a selection of command-line parameters which in the GUI are accessed through buttons and checkboxes.

  • -e encodes, -d decodes; also, it can run test encoding/decoding by -te resp. -t.
  • -v verifies upon encoding; -md5 adds audio MD5 checksum for later verification (like also supported by FLAC and WavPack).


Compression parameters and performance

The compression options are displayed by name in the GUI. The compression options range from -p0 to -p4, with each of the having an optional “m” or “e” modifier for additional compression at the expense of encoding time, making for fifteen in total: -p0, -p0e, -p0m etc. Although the -p3's decode faster (= at lower CPU load) than the -p4's etc., the differences are much smaller than migrating to any other lossless decoder, and all are second only to FLAC in decoding speed.

  • -p2 is the current default option. It is measured to compress on par with Monkey's “Normal”, but encoding at speeds between WavPack and FLAC default options.
  • -p0 is the fastest option, encoding around WavPack default and FLAC -6, but 2-3 times faster.
  • -p4m is the slowest option yields the highest compression (though at very small improvement over -p4e), encoding in size and speed on par with OptimFrog “Normal”, slightly between Monkey's “High” and “Extra high”, while decoding at 10-15 percent of the CPU load.
  • -p3: In the performance test in the links, this is where TAK reaches Monkey's “High” in compression and encoding speed.

Command-line examples, including pipe redirection

Basic encoding resp. decoding commands are

Takc -e input.wav
Takc -d input.tak

Example with more parameters: The following will encode input.wav to output.tak using compression level “p3e”, write an MD5 checksum, and afterwards verify the encoded file:

Takc -e -p3e -md5 -v input.wav output.tak

Examples decoding TAK with pipe to .mp3/.opus/.flac/.wv:

Takc.exe -d input.tak - | lame.exe -V 6 - output.mp3
Takc.exe -d input.tak - | opusenc.exe --bitrate 64 - output.opus
Takc.exe -d input.tak - | flac.exe -8 - -o output.flac
Takc.exe -d input.tak - | wavpack.exe -hhx - output.wv

Examples encoding TAK from FLAC, WavPack resp. arbitrary ffmpeg-supported format:

flac.exe -dc input.flac | Takc.exe -e -p1e - output.tak
wvunpack.exe input.wv - | Takc.exe -e -p4m - output.tak
ffmpeg.exe -i input.xxx -f wav - | Takc.exe -e -p0 -ihs - output.tak


Using TAK in other applications

TAK with foobar2000

For decoding, use the foo_input_tak component (current version using the 2.3.1 decoding library).

For encoding:

  • Select files, right-click, select Convert and the “...”
  • Under Output format, click Add New and set it up as shown below (note: replace -p2 with the desired compression level).
  • Upon first conversion, foobar2000 will ask you to navigate to locate Takc.exe .
Screenshot of foobar 0.9.5 Converter settings for TAK 1.0.3


TAK with Exact Audio Copy

Please read the wiki guide, which details how to create TAK files with EAC.


Links