Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: TAK 1.0 - Final release of the new lossless codec (Read 248416 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

TAK 1.0 - Final release of the new lossless codec

TAK 1.0 - Final release

It's been a long time...

About

TAK is a lossless audio compressor, similar to FLAC, WavPack and Monkey's Audio. On average, lossless compression reduces the file size to about 50 percent of the original size; however the compression can vary between approximately 30 and 70 percent, depending on the file. Decompression restores a bit identical copy of the original audio data (that's why we call it lossless).

My goal was to develop a compressor which combines good compression with optimal decoding speeds. On average, the current implementation should match the compression efficiency of Monkey's Audio High, while achieving decompression speeds similar to FLAC.

Features

- Good compression. The strongest mode (Extra) is on par with Monkey's Audio High and OptimFrog Normal. TAK's fastest mode (Turbo) easily outperforms FLAC's strongest mode. This classification is based upon the evaluation of hundreds of files of different genres; it may not be the case for every file that you compress.
- Fast compression speed. Currently I know of no other compressor which compresses faster than TAK's Turbo and Fast modes, while providing similar compression ratios.
- Very fast decompression speed. The decoding speeds achieved are similar to, and often surpassing, those achieved by FLAC.
- Support for any common audio format (not fully implemented).
- Streaming support. An info frame, which contains all the information required to decompress a file, is inserted into the compressed audio data every 2 seconds.
- Error tolerance. A single bit error will never affect more than 250 ms of the audio data, as the compressed data is being stored in independent frames no more than that duration. The decoder is able to decompress even badly damaged files, by removing corrupt frames or replacing them with silence.
- Error detection. Each single frame is protected by a 24-bit checksum (CRC).
- Fast and sample accurate seeking. The file header contains a seektable with seekpoints (at 1 second intervals). In the absence of the seektable seeking can still be achieved by using the sync codes of the frame headers and the (optional) relative offset values contained in each info frame, which are pointing to the previous and next info frame.
- Meta data. A flexible and extensible structure in which to embed non audio data.

Changes

Improved:

- Synthetic Soul was so kind to correct my bad english in the ReadMe.

Fixed:

- Decoding with the command line version: if you specified wildcards for the file selection and the source directory contained only 1 TAK file, the decoder always threw the message 'File already exists'. Even worse: using the overwrite option in this situation led to deletion of the compressed source file!

- Usually the decoder ignores any data appended to the file end of the compressed file (for instance APEv2 tags). But it failed, if the file size was an integer multiple of the frame size (in samples).

Both bugs affected only the decoder, therefore there is no need to re-encode TAK files created with beta 2. Files created with earlier versions than beta 2 should be replaced.

Thank you

Thank you to all the members who have supported the development of TAK!

Firstly, you have provided encouragement to build yet another lossless audio compressor. Otherwise I would have dropped the whole project!

You helped to evaluate and optimize TAK. There have been 13 releases over a period of 8 months before the alpha version, and all of them have been evaluated by you!

Special thanks to the following members (in alphabetical order):

Destroid
Josef Pohm
Synthetic Soul

Download

The final can be downloaded from rarewares.org (Thanks to  rjamorim!):

TAK 1.0 (Final)

Future

Some important features are missing in this release. Please find below my current to-do list:

- Plugins for other applications, such as Winamp or foobar2000 (a Winamp plugin is already close to completion).
- An SDK for other developers.
- Internal tagging.
- Unicode support.
- Piping support.
- MD5 audio checksums for verification and identification.
- A german version.
- Embedded cue sheets.
- Embedded cover art.
- Multi channel audio.
- Even more speed and better compression.

TAK 1.0 - Final release of the new lossless codec

Reply #1
I just wanted to say congratulations.  It's been exciting following the development of TAK from your very first post on this messageboard all the way up to this v1.0 release.

I also want to say thank you.  TAK looks very impressive and I plan to migrate my lossless archive over to TAK in the near future.  Specifically, whenever a foobar plugin is made.  No hurry, though.  I'm a patient fellow. 

TAK 1.0 - Final release of the new lossless codec

Reply #2
What is TAK?

What are the advantages over rivals?

TAK 1.0 - Final release of the new lossless codec

Reply #3
askoff, you're kidding, right?

Did you really miss all these threads? (and all the buzz generated by this new codec?)

http://www.hydrogenaudio.org/forums/index....c=43179&hl=
http://www.hydrogenaudio.org/forums/index....c=43289&hl=
http://www.hydrogenaudio.org/forums/index....c=43493&hl=
http://www.hydrogenaudio.org/forums/index....c=43494&hl=
http://www.hydrogenaudio.org/forums/index....c=50958&hl=
http://www.hydrogenaudio.org/forums/index....c=51565&hl=

The main advantage of TAK is the fact that it offers compression ratios comparable to Monkey's Audio with decoding speeds comparable to FLAC. In a way, the best of both worlds. Like many other HA members, I'm very excited with this codec.

TBeck, congratulations on this release!
Over thinking, over analyzing separates the body from the mind.

TAK 1.0 - Final release of the new lossless codec

Reply #4
What is TAK?

Just read a bit here at the forum 

Thomas, congratulations to you. TAK gained much interest here and sure looks very promising incredibly good!

TAK 1.0 - Final release of the new lossless codec

Reply #5
I can't believe that it's been almost ten months since you first mentioned your new codec... time sure does fly!

Congratulations on getting to this point, and good luck for the future.  Oh, and thank you!  Thanks for sharing with the community, and for keeping me occupied with the alpha and beta testing - it's been enjoyable. 

Edit: perhaps askoff knows Tak by it's "codename", Yalac?

Edit 2: It may be worth pointing new users to these posts:
I'm on a horse.

TAK 1.0 - Final release of the new lossless codec

Reply #6
I can't believe that it's been almost ten months since you first mentioned your new codec... time sure does fly!

Congratulations on getting to this point, and good luck for the future.  Oh, and thank you!  Thanks for sharing with the community, and for keeping me occupied with the alpha and beta testing - it's been enjoyable.

Fine!

This release is definitely a break for me, something has changed. Surely i will work further much on TAK, but this exciting creation phase is over, the baby is there!

Edit: perhaps askoff knows Tak by it's "codename", Yalac?

BTW: I forgot to write you, that i have deceided for 'TAK' instead of 'Tak'. Probably a bit surprising but when i read the title of the readme, 'Tak' looked a bit lost. Well, some insight into my very elaborated deceision making process...

  Thomas

TAK 1.0 - Final release of the new lossless codec

Reply #7
I'm sorry if I hurt someones feelings for asking so simple question, but I guess I'm not onlyone who doesn't know what it is. And if I have managed so far without it I'm quite reluctant to use lots of time to search what it is.

TAK 1.0 - Final release of the new lossless codec

Reply #8
I'm sorry if I hurt someones feelings for asking so simple question...

Not mine.

... but I guess I'm not onlyone who doesn't know what it is. And if I have managed so far without it I'm quite reluctant to use lots of time to search what it is.

I thought it was ok to post it into 'Lossless / Other Codecs' without a description, because here are so many posts regarding Tak. If i had posted it in the news section, i would have added a description. One reason why i haven't is my bad english...

  Thomas

Edit: I will copy the feature list from the ReadMe into the initial post.

TAK 1.0 - Final release of the new lossless codec

Reply #9
Uh, what about unix users?

TAK 1.0 - Final release of the new lossless codec

Reply #10
And if I  have managed so far without it I'm quite reluctant to use lots of time  to search what it is.
I'm glad Marie Curie didn't have the same  attitude...

Those  of us with a more amenable disposition are clearly quite enthused though. 

Uh, what about unix users?
In my understanding the intention is that TAK will be ported from Delphi to C at a later date, during which time an SDK, source, and no doubt *nix release will become available.  This is no doubt simplifying things and perhaps totally inaccurate, I'm sure Thomas will correct me when he is back on.  In essence though, you have no option at this time, but have not been forgotten.  It is still early days (currently no method for playback for any OS!).

Edit: A relevant topic, although not answering your question directly.
I'm on a horse.

TAK 1.0 - Final release of the new lossless codec

Reply #11
In my understanding the intention is that TAK will be ported from Pascal to C at a later date...

freepascal supports Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS ...

TAK 1.0 - Final release of the new lossless codec

Reply #12
Do we have a media player that can play Tak?  Hopefully, foobar2000 will have one soon.

Good job on the release and I look forward to testing it out.
Zune 80, Tak -p4 audio library, Lossless=Choice

TAK 1.0 - Final release of the new lossless codec

Reply #13
Glad to see that people read my posts.

No, no playback!  Thomas is working on a Winamp plugin at the moment.
I'm on a horse.

TAK 1.0 - Final release of the new lossless codec

Reply #14
Just like to add my congratulations!!  TAK is a big step forward for lossless compression.

TAK 1.0 - Final release of the new lossless codec

Reply #15
freepascal supports Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS ...

Very good kwanbis, that's the point! And FreePascal was intended to be sourcecode compatible with Borland's Turbo Pascal and Delphi V7. Maybe TAK can be compiled with it?

btw, Pascal is a very nice language. Learning to write human readable code with Pascal is much easier than with C++

TAK 1.0 - Final release of the new lossless codec

Reply #16
Excellent release. I hope the source will be released soon also.

TAK 1.0 - Final release of the new lossless codec

Reply #17
I also agree with kwanbis and Sunhillow.

Kinda offtopic but... in fact I'm trying to make a Pascal wrapper for foobar2000's API. Then from there I am planning to make 2 foobar2000 plugins, one a visualization plugin, and the other a gapless UI plugin.

I hate C/C++

TAK 1.0 - Final release of the new lossless codec

Reply #18
I was going to leave this for Thomas to answer, as he is the only one who can properly answer this, but I 'm bored, and this thread seems to be going down a singular path.

It is my understanding that the key point here is that Thomas wants to redevelop the code structure before doing anything else.  This possibly includes even a foobar component.

If TAK is compiled for *nix as is then users will also expect a method to play back the files. Then Mac users will feel left, then Solaris users...  All this detracts from the idea of getting the source into a form that makes it easier for the majority of third parties to utilise (SDK, libraries), and that can be released to the public.

In essence, by spending time porting and developing player components now Thomas would not be spending his time developing the source to be released for others to do with as they please (differing OS'es and various media player components).  It is a long-term gain, not a short-term.
I'm on a horse.

TAK 1.0 - Final release of the new lossless codec

Reply #19
I was going to leave this for Thomas to answer, as he is the only one who can properly answer this, but I 'm bored, and this thread seems to be going down a singular path.

It is my understanding that the key point here is that Thomas wants to redevelop the code structure before doing anything else.  This possibly includes even a foobar component.

If TAK is compiled for *nix as is then users will also expect a method to play back the files. Then Mac users will feel left, then Solaris users...  All this detracts from the idea of getting the source into a form that makes it easier for the majority of third parties to utilise (SDK, libraries), and that can be released to the public.

In essence, by spending time porting and developing player components now Thomas would not be spending his time developing the source to be released for others to do with as they please (differing OS'es and various media player components).  It is a long-term gain, not a short-term.

Thank you Neil. This is nearly correct. My plan for the further development wasn't too clear before the final release, because i was too involved into the preparation of the release. I needed a bit of mental distance to feature and optimization issues.

To understand my current plans it is important to be aware of TAK's situation after the final release:

1) TAK is out, it has some nice features (especially the speed/compression proportion) which may attract a fair amout of people. But they will soon find out, that some important features are missing: Player support and internal tagging. Because i want to avoid that people are loosing interest because of those limitation, it's very important for me to add those features as soon as possible.

2) If the source code was available, other developers could work on support for other applications. But it isn't and it will take a long time to bring it into an adequate form. TAK development can not be suspended until a source code release.

It's also important, that the preparation of a source code release is definitely no fun for me, it's very much of mostly boaring work. I will not spend the next 2 or 3 months on this work.

BTW: I don't want to discuss what 'adequate form' means, i definitely will not release any source code i am not feeling comfortable with! While i appreciate earlier offers to help me with the source code, i am convinced, that i have to do it by myself (but i will ask for help on specific issues).  If other developers would perform the source clean up and conversion from Delphi to C, i would have to check, if they did it right. Given TAK's complexity, this would also be very time consuming and boaring.

My current plan:

1) The missing features have to be added by me.

2) I just started the work on a SDK. It will consist of a binary library, which other developers may use to write plugins for other applications. It will grow step by step. The first release will only provide decoding funktions for (seekable) Tak streams. I will use my existing Delphi code for this.

3) Source code conversion will be performed in small (bearable) portions, when i have time. Absolutely no promises about a release date!

Like Neil said, a WinAmp plugin is in the work. Possibly it's already good enough for an alpha release. But i want to use the plugin as a test platform for my first SDK version. Therefore i want to wait with a release until the SDK is ready. Urgent user demand may change this...

I hope, it's a bit clearer now. I really wish i would be better in writing english!

  Thomas

TAK 1.0 - Final release of the new lossless codec

Reply #20
Great to see that TAK have reach version 1.0, as there is a market for more lossless codecs.
But I am really sad to see that your current to-do list don't mention releasing binaries for non-Windows OS'.

TAK 1.0 - Final release of the new lossless codec

Reply #21

If TAK is compiled for *nix as is then users will also expect a method to play back the files. Then Mac users will feel left, then Solaris users...  All this detracts from the idea of getting the source into a form that makes it easier for the majority of third parties to utilise (SDK, libraries), and that can be released to the public.

Thank you Neil. This is nearly correct. My plan for the further development wasn't too clear before the final

This part of Neil's post is absolutely correct! While i myself will work on a binary SDK for windows users, support for other OS' probably will have to wait until the source code release!

Exception: If i have time and should find out, that it's easy to compile TAK with Free Pascal, i may provide a command line version for other OS'.

Great to see that TAK have reach version 1.0, as there is a market for more lossless codecs.
But I am really sad to see that your current to-do list don't mention releasing binaries for non-Windows OS'.

Please see above.

Sorry. I should work faster...

TAK 1.0 - Final release of the new lossless codec

Reply #22
Thomas,

Congratulations and thanks for your efforts.  I have been following your efforts since the start but never posted.  I think you have pushed the boundaries of lossless audio technology and for that you should be commended.  I can't wait to start using TAK in foobar and my hopefully-soon-to-exist HTPC!

TAK 1.0 - Final release of the new lossless codec

Reply #23

Great to see that TAK have reach version 1.0, as there is a market for more lossless codecs.
But I am really sad to see that your current to-do list don't mention releasing binaries for non-Windows OS'.

Please see above.

Sorry. I should work faster...
Ok, I understand. Support for non-Windows OS will have to wait until you release the source code.
I just got the impression from kwanbis' post that the current source code could be compile for most OS, using freepascal.

I know that this is not you highest priority, but hope it will at least make it into your to-do list.

TAK 1.0 - Final release of the new lossless codec

Reply #24
Since TAK is really interesting for all those people who want to archive their CDs my high-priority-list would be:
- Internal tagging.
- Embedded cue sheets.
- Embedded cover art.