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.1 Development (Read 56889 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

TAK 1.0.1 Development

Reply #25
Cool.  Thanks for the confirmation. 

Looking forward to seeing the advancements.

BTW: I assume that you are aware of the spec in the wiki?  I guess you must be, but I thought I may as well mention it.

Cheers Thomas.
I'm on a horse.

TAK 1.0.1 Development

Reply #26
On checking I think Tag is fine.

The header says "Tag contains a header, tag contain a footer, this is the header" (31 = 1, 30 = 0, 29 = 1) while the footer says "Tag contains a header, tag contain a footer, this is the footer" (31 = 1, 30 = 0, 29 = 0).

Do you agree?

I was confused for a while, until I realised that bit 30 as 0 meant there was a footer.

BTW, there is some reason behind this madness. The original APEv1 tag didn't have any of those flags and did not have the header at all (only the footer). So, the values of the flags were chosen so that all zeros meant "no header, this is the footer" which allows the new format to be backward compatible with APEv1 tags (not counting the UTF-8 issue, of course).

TAK 1.0.1 Development

Reply #27
BTW, there is some reason behind this madness. The original APEv1 tag didn't have any of those flags and did not have the header at all (only the footer). So, the values of the flags were chosen so that all zeros meant "no header, this is the footer" which allows the new format to be backward compatible with APEv1 tags (not counting the UTF-8 issue, of course).
Ah, thanks for the background info David.

@Thomas, FYI, Tag.exe can set multiple values for a tag.  The separator was "; ", but following a request from a user I amended it, as many people embed the EAC log which often (always?) contains "; ".  I amended the separator to "<>"  to try to stop any ambiguity.  foobar uses ";".  In retrospect I probably should have left it as "; " and done something about "; " in files used with the -f switch... No-one's said anything about it and I do wonder whether anyone uses the functionality.

I think it is very useful to be able to set a tag from the contents of a file.  That's the whole reason I made the effort to adapt Case's Tag in the first place (my site has a link to the initial thread).  WavPack has had the functionality for a while (kudos to David!), and FLAC now has also.
I'm on a horse.

TAK 1.0.1 Development

Reply #28

On checking I think Tag is fine.

The header says "Tag contains a header, tag contain a footer, this is the header" (31 = 1, 30 = 0, 29 = 1) while the footer says "Tag contains a header, tag contain a footer, this is the footer" (31 = 1, 30 = 0, 29 = 0).

Do you agree?

I was confused for a while, until I realised that bit 30 as 0 meant there was a footer.

BTW, there is some reason behind this madness. The original APEv1 tag didn't have any of those flags and did not have the header at all (only the footer). So, the values of the flags were chosen so that all zeros meant "no header, this is the footer" which allows the new format to be backward compatible with APEv1 tags (not counting the UTF-8 issue, of course).

Good to know that the madness does make sense. Thank you.

@Thomas, FYI, Tag.exe can set multiple values for a tag.  The separator was "; ", but following a request from a user I amended it, as many people embed the EAC log which often (always?) contains "; ".  I amended the separator to "<>"  to try to stop any ambiguity.  foobar uses ";".  In retrospect I probably should have left it as "; " and done something about "; " in files used with the -f switch... No-one's said anything about it and I do wonder whether anyone uses the functionality.

Hm, i was referring to the APEv2 wiki: APE Item Value -> List of entries:

"Items are not zero-terminated like in C/C++. If there's a zero character, multiple items are stored under the key and the items are separated by zero characters."

Possibly the fact that TAG isn't using zero characters should tell me something. Maybe the zero character variant is rarely beeing used...

I think it is very useful to be able to set a tag from the contents of a file.  That's the whole reason I made the effort to adapt Case's Tag in the first place (my site has a link to the initial thread).  WavPack has had the functionality for a while (kudos to David!), and FLAC now has also.

Oh yes, this option would also be useful for my current testing of my tag reader. But i am not sure, if i will add tag writing functions to TAK 1.0.1.

Unfortunately i myself am rarely performing tagging. Therefore i am lacking practical experience. Yes, i can read specifications (not always right!) and put them into code. But from my experience this isn't always sufficient, you often need practise to make it really good or find details missing in the specification. I will first release a version with tag reading functions and if everything works well later add the write functions.

  Thomas

TAK 1.0.1 Development

Reply #29

@Thomas, FYI, Tag.exe can set multiple values for a tag.  The separator was "; ", but following a request from a user I amended it, as many people embed the EAC log which often (always?) contains "; ".  I amended the separator to "<>"  to try to stop any ambiguity.  foobar uses ";".  In retrospect I probably should have left it as "; " and done something about "; " in files used with the -f switch... No-one's said anything about it and I do wonder whether anyone uses the functionality.

Hm, i was referring to the APEv2 wiki: APE Item Value -> List of entries:

"Items are not zero-terminated like in C/C++. If there's a zero character, multiple items are stored under the key and the items are separated by zero characters."

Possibly the fact that TAG isn't using zero characters should tell me something. Maybe the zero character variant is rarely beeing used...

I think maybe two different things are being discussed here.

In the APEv2 tag there may be multiple items stored under the same key, and these are separated by NULLs (although the last one doesn't have a NULL because the byte count is used for the length). However, when the strings are specified (or displayed), there's no way to input (or output) a NULL, so this has to be converted into some other regular but uncommon character. I used a \ when I display tags using wvunpack.exe because a tag editor I was using for testing (Mp3tag) used this. However, I don't have this facility when the tags are created because I assume that if people want to get that fancy with tags they'll be using a dedicated editor (EAC has no way to specify multiple items, AFAIK).

It's too bad that neither of the original creators of APE tags are still active with them because the spec could use a little clarification (like some standardized key names). Oh well...

David

TAK 1.0.1 Development

Reply #30


@Thomas, FYI, Tag.exe can set multiple values for a tag.  The separator was "; ", but following a request from a user I amended it, as many people embed the EAC log which often (always?) contains "; ".  I amended the separator to "<>"  to try to stop any ambiguity.  foobar uses ";".  In retrospect I probably should have left it as "; " and done something about "; " in files used with the -f switch... No-one's said anything about it and I do wonder whether anyone uses the functionality.

Hm, i was referring to the APEv2 wiki: APE Item Value -> List of entries:

"Items are not zero-terminated like in C/C++. If there's a zero character, multiple items are stored under the key and the items are separated by zero characters."

Possibly the fact that TAG isn't using zero characters should tell me something. Maybe the zero character variant is rarely beeing used...

I think maybe two different things are being discussed here.

In the APEv2 tag there may be multiple items stored under the same key, and these are separated by NULLs (although the last one doesn't have a NULL because the byte count is used for the length). However, when the strings are specified (or displayed), there's no way to input (or output) a NULL, so this has to be converted into some other regular but uncommon character. I used a \ when I display tags using wvunpack.exe because a tag editor I was using for testing (Mp3tag) used this. However, I don't have this facility when the tags are created because I assume that if people want to get that fancy with tags they'll be using a dedicated editor (EAC has no way to specify multiple items, AFAIK).

I added two different values to one key with TAG, and TAG seperated them only with "<>" (says my hex editor), but not with a zero character... But you are right, my initial question referred to the binary representation of the tag, not the way it is beeing specified at the command line.

TAK 1.0.1 Development

Reply #31
Until tak gets some attention by users like for example the Slimdevices people do it isn´t necesary to offer any improvements. Is it?
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!

TAK 1.0.1 Development

Reply #32
Until tak gets some attention by users like for example the Slimdevices people do it isn´t necesary to offer any improvements. Is it?

If i had only worked on TAK if i got enough attention, it never would have been released. I think, that most developers of free software are being driven by their own interest into their work, they want to see what they can achieve. Without this internal motivation there probably would be very little progress.

I myself have a very clear conception of what i would like TAK to be and currently it is far away from this...

Should i wait with the release of for instance the SDK? Well, i already got requests from other developers who want to add TAK support to their applications. Those improvements are a precondition for more support and attention.

IMHO: Probably the interest into hardware implemetations is a bit overemphasized (not representative) at hydrogen.

TAK 1.0.1 Development

Reply #33
Don´t misunderstand me. TAK is cool, but with my Core2 and plenty of processing power i don´t know why i should go for 3% of less space if space doesn`t cost much.
Even if your ideas are real breaktroughs i always think why we do need another lossless codec!?
Here on Hydrogen of cause you´ll reach some attention.
Sorry, i am to dump to create such codec nobody needs.
Playing around with bytes is another story...
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!

TAK 1.0.1 Development

Reply #34
Don´t misunderstand me. TAK is cool, but with my Core2 and plenty of processing power i don´t know why i should go for 3% of less space if space doesn`t cost much.

That's a point of view i can perfectly understand. It's probably a matter of personal taste. For some people 3 percent are important, for others not. I remember many posts of people who have switched to WavPack because of 1 percent better compression.

BTW: I received a mail from one happy user who transcoded his audio books (mostly speech) from FLAC to TAK and reported 10 percent better compression. (Caution: Don't expect such a big improvements for music. Although i know that TAK performs quite well on speech, 10 percent is a really rare result).

Sorry, i am to dump to create such codec nobody needs.

I doubt, that nobody is interested into TAK. If someone really needs it, is a different matter.

TAK 1.0.1 Development

Reply #35
I think maybe two different things are being discussed here.

In the APEv2 tag there may be multiple items stored under the same key, and these are separated by NULLs (although the last one doesn't have a NULL because the byte count is used for the length). However, when the strings are specified (or displayed), there's no way to input (or output) a NULL, so this has to be converted into some other regular but uncommon character.
I added two different values to one key with TAG, and TAG seperated them only with "<>" (says my hex editor), but not with a zero character... But you are right, my initial question referred to the binary representation of the tag, not the way it is beeing specified at the command line.
David is correct that I was discussing the interface, rather than the storage method - in Tag.exe the null separator is created using "<>".  I tested this yesterday following your initial enquiry, and did note that it looks awful when displaying current tags, so I'm thinking of changing it to something more aesthetic, or reverting to "; " and pre-processing the content of files.

When I tested I loaded the tagged files into foobar, and foobar listed them with the ";" separator as expected (or "," in ColumnsUI).  I'm very confused regarding what you have seen in your hex editor -  I guess I best take a look also.  Given the following screenshot though I can't see how it can be the case - unless perhaps you used it in a field that won't allow it (if there is such a thing).



Edit: OK, tested in hex editor and the null char does exist (see screenshot below).  Confused.



Edit: FYI, I have just tested reverting to "; " as the separator, but ignoring it in tag sizes greater than 256 bytes, which I would presume to be file contents (like the EAC log).  I am happier with this implementation, especially as I don't like to mess with Case's "concepts" if I can help it.  If you would prefer this version you can download it here.  At a later date I might check that there is no way that I can tell if the tag was from file contents or not.  I don't think there is, but this would be better then the 256 bytes check.
I'm on a horse.

TAK 1.0.1 Development

Reply #36
I use my project Dynamite for add APE Tag v2.00 in TAK files... 


TAK 1.0.1 Development

Reply #37
I think maybe two different things are being discussed here.

In the APEv2 tag there may be multiple items stored under the same key, and these are separated by NULLs (although the last one doesn't have a NULL because the byte count is used for the length). However, when the strings are specified (or displayed), there's no way to input (or output) a NULL, so this has to be converted into some other regular but uncommon character.

I added two different values to one key with TAG, and TAG seperated them only with "<>" (says my hex editor), but not with a zero character... But you are right, my initial question referred to the binary representation of the tag, not the way it is beeing specified at the command line.
David is correct that I was discussing the interface, rather than the storage method - in Tag.exe the null separator is created using "<>".  I tested this yesterday following your initial enquiry, and did note that it looks awful when displaying current tags, so I'm thinking of changing it to something more aesthetic, or reverting to "; " and pre-processing the content of files.

When I tested I loaded the tagged files into foobar, and foobar listed them with the ";" separator as expected (or "," in ColumnsUI).  I'm very confused regarding what you have seen in your hex editor -  I guess I best take a look also.  Given the following screenshot though I can't see how it can be the case - unless perhaps you used it in a field that won't allow it (if there is such a thing).

Well, i should have shown you my command line parameters...

Code: [Select]
TAG.EXE --artist "My Artist 1<>My Artist 2" --artist "My Artist 3"

TAG will separate "My Artist 1" and "My Artist 2" with a zero char. Fine. But then it will add "<>My Artist 3", hence use "<>" instead of a zero as separator.

Until your latest post i always used: "TAG.EXE --artist "My Artist 1" --artist "My Artist 2", and you were probably talking about TAG.EXE --artist "My Artist 1<>My Artist 2". This generated more confusion... Sorry. Next time i will immediately post the cmd line.

I don't know how important this minor bug is, probably nobody else is using my syntax. And maybe i should read TAG's documentation...

TAK 1.0.1 Development

Reply #38
I don't know how important this minor bug is, probably nobody else is using my syntax. And maybe i should read TAG's documentation...


Why don't use Delphi component that I've sent to you, Thomas? 

TAK 1.0.1 Development

Reply #39
Well, i should have shown you my command line parameters...

Code: [Select]
TAG.EXE --artist "My Artist 1<>My Artist 2" --artist "My Artist 3"

TAG will separate "My Artist 1" and "My Artist 2" with a zero char. Fine. But then it will add "<>My Artist 3", hence use "<>" instead of a zero as separator.

Until your latest post i always used: "TAG.EXE --artist "My Artist 1" --artist "My Artist 2", and you were probably talking about TAG.EXE --artist "My Artist 1<>My Artist 2". This generated more confusion... Sorry. Next time i will immediately post the cmd line.

I don't know how important this minor bug is, probably nobody else is using my syntax. And maybe i should read TAG's documentation... crying.gif
Hmmm... I think your syntax is a little odd, but I am confused by the results.  I will take a look.  Thanks for highlighting it, but I can't promise that I can resolve it. 

Why don't use Delphi component that I've sent to you, Thomas? huh.gif
Your link doesn't work for me.  I just get redirected to http://home.altervista.org/site/.  Edit:  It seems to work now - possibly because I first visited your homepage.

Does your app deal with tagging multiple values?
I'm on a horse.


TAK 1.0.1 Development

Reply #41
Yes, thank you. That's how I go it to work eventually.  After visiting his homepage the link seemed to work as well.  I guess it's some hotlinking thing...
I'm on a horse.

TAK 1.0.1 Development

Reply #42

I don't know how important this minor bug is, probably nobody else is using my syntax. And maybe i should read TAG's documentation...


Why don't use Delphi component that I've sent to you, Thomas? 

Simply because i only had TAG when i started my testing. And for my (batch controled) testing purposes a command line tool was better suited. But i will try your tool soon. 

Well, i should have shown you my command line parameters...

Code: [Select]
TAG.EXE --artist "My Artist 1<>My Artist 2" --artist "My Artist 3"

TAG will separate "My Artist 1" and "My Artist 2" with a zero char. Fine. But then it will add "<>My Artist 3", hence use "<>" instead of a zero as separator.

Until your latest post i always used: "TAG.EXE --artist "My Artist 1" --artist "My Artist 2", and you were probably talking about TAG.EXE --artist "My Artist 1<>My Artist 2". This generated more confusion... Sorry. Next time i will immediately post the cmd line.

I don't know how important this minor bug is, probably nobody else is using my syntax. And maybe i should read TAG's documentation... crying.gif

Hmmm... I think your syntax is a little odd, but I am confused by the results.  I will take a look.  Thanks for highlighting it, but I can't promise that I can resolve it. 

I am really not sure if a fix is neccessary (definitely not for me). Possibly a hint in the documentation would be sufficient (if it is not already there). Hey, you don't have to use my odd syntax!

TAK 1.0.1 Development

Reply #43
Does your app deal with tagging multiple values?


Sure 

Just open a file (or use Drag'N'Drop) and you can add, edit or remove APE Tag 

Naturally it's only an example (i made it in five minutes)...

In theory he can support Monkey's Audio and WavPack and all files who support APE Tag 


Simply because i only had TAG when i started my testing. And for my (batch controled) testing purposes a command line tool was better suited. But i will try your tool soon. 


It' s very simple tu use it; just add a component in your form, set filename and he will return APE Tag Info 

 


 

TAK 1.0.1 Development

Reply #45
Do you understand "formats" for values Synthetic Soul?

TAK 1.0.1 Development

Reply #46
Happy Anniversary!

I know I'm a new name to these posts, but I've been following the development of TAK ever since it was introduced one year ago, and boy has this project come a long way!

I want to say congrats to you Thomas and all of the progress you've made over the year and I wish you luck for another great year

TAK 1.0.1 Development

Reply #47
Do you understand "formats" for values Synthetic Soul?


You are talking about your program supporting multiple formats like TAK, APE etc

Synthetic Soul and TBeck are talking about adding tag with multiple values for same field... like Artist=Metallica, Artist=Beatles, Artist=Flaming Lips.

TAK 1.0.1 Development

Reply #48
Synthetic Soul and TBeck are talking about adding tag with multiple values for same field... like Artist=Metallica, Artist=Beatles, Artist=Flaming Lips.


Ah, now I have understood 

No, but to what purpose? 

If artists are more than one it is enough type Metallica/Megadeth/Slayer, not? 

TAK 1.0.1 Development

Reply #49

Synthetic Soul and TBeck are talking about adding tag with multiple values for same field... like Artist=Metallica, Artist=Beatles, Artist=Flaming Lips.


Ah, now I have understood 

No, but to what purpose? 

If artists are more than one it is enough type Metallica/Megadeth/Slayer, not? 


My example wasn't a good one.

A better use would be for genres or for styles (if you get data from allmusic for example).