Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 5 of 5
  1. #1
    MrSinatra
    Guest

    Question multiple frames and separator characters, any standards?

    i'm trying to explain a concept i don't understand over at winamp, so i know experts here can do so better than i.

    i have gotten them to no longer delete TCMP frames, (bad bug) and that should be in 5.63 when its released, along with some other decent improvments. while they are working on the tag parser, i want to at least get them thinking about how other apps do things so they can support it to some degree, or at least do no harm.

    i am pretty sure i have a handle on separator characters. a file has a tag, like vorbis or id3v2.3, and a field/frame in that tag has a value in it that is "separated" by a character specified to the app. so for example:

    TPE1=Paul Simon;Art Garfunkel
    or
    ARTIST=Paul Simon;Art Garfunkel

    and ; is specified, so the app knows to enter two artists into the DB for the one file/song.

    so the first Q is, how does an app decide which frames it will support such characters?

    the second Q is, does a standard for this exist anywhere, or is it just an ad-hoc invention?

    PART 2:

    multiple fields/frames in a tag is a huge grey area to me. i know mp3tag does it, but i don't know what else does it, and more importantly, i don't know HOW it does it?

    would a files tag actually have MORE than one frame called TPE1? so like this:

    TPE1=Paul Simon
    TPE1=Art Garfunkel

    is it actually stored in the file that way? meaning, is TPE1 there twice, or is there only one TPE1 frame thats been hacked somehow?
    how many multiple frames can there be?

    and how do you do it in mp3tag? do you do two // characters to inject multiple frames, (where // acts as a separator?) how do you know if a file has multiple frames? can u tell in grid view? can any frame be made into multiple frames?

    does a standard for this exist anywhere, or is it just an ad-hoc invention?

    thx for any clarifications!

  2. #2
    Senior Member Mnyb's Avatar
    Join Date
    Feb 2006
    Location
    Vństerňs Sweden
    Posts
    16,528
    Topic is over my limited tag skills but i noticed that SBS lets you specify your own separator character I use ";" .

    so SBS users can have thier own adhoc inventions ?

    and it tells me that SBS is not using any tag separator untill told so .

    I'm trying the hopless bugzilla search, i vaguly remebered a bug about making ";" a separator character per default....
    --------------------------------------------------------------------
    Main hifi: Rasbery PI digi+ MeridianG68J MeridianHD621 MeridianG98DH 2 x MeridianDSP5200 MeridianDSP5200HC 2 xMeridianDSP3100 +Rel Stadium 3 sub.
    Bedroom/Office: Boom
    Loggia: Raspi hifiberry dac + Adams
    Bathroom : Radio (with battery)
    iPad with iPengHD & SqueezePad
    (spares Touch, SB3, reciever ,controller )
    server Intel NUC Esxi VM Linux mint 18 LMS 7.9.2

    http://people.xiph.org/~xiphmont/demo/neil-young.html

  3. #3

  4. #4
    Senior Member JJZolx's Avatar
    Join Date
    Apr 2005
    Location
    Colorado
    Posts
    11,531
    Quote Originally Posted by MrSinatra View Post
    so the first Q is, how does an app decide which frames it will support such characters?
    I would guess necessity, customer demand, and a little common sense. A track can have two or more artists but not two track numbers, titles or album names.

    the second Q is, does a standard for this exist anywhere, or is it just an ad-hoc invention?
    Mostly ad-hoc. But standards do emerge from common usage, such as that for using TCMP, based on how iTunes uses it.

    would a files tag actually have MORE than one frame called TPE1? so like this:

    TPE1=Paul Simon
    TPE1=Art Garfunkel

    is it actually stored in the file that way? meaning, is TPE1 there twice, or is there only one TPE1 frame thats been hacked somehow?
    how many multiple frames can there be?
    No. There can be only one frame with a given name. Id3v2.4 frames use a null character separator. I believe that technically, it was only introduced in id3v2.4, but Mp3tag also does the same thing with id3v2.3 tags.

    From http://www.id3.org/id3v2.4.0-frames
    Code:
    4.2.   Text information frames
    
       The text information frames are often the most important frames,
       containing information like artist, album and more. There may only be
       one text information frame of its kind in an tag. All text
       information frames supports multiple strings, stored as a null
       separated list, where null is reperesented by the termination code
       for the charater encoding. All text frame identifiers begin with "T".
       Only text frame identifiers begin with "T", with the exception of the
       "TXXX" frame. All the text information frames have the following
       format:
    
         <Header for 'Text information frame', ID: "T000" - "TZZZ",
         excluding "TXXX" described in 4.2.6.>
         Text encoding                $xx
         Information                  <text string(s) according to encoding>
    and how do you do it in mp3tag? do you do two // characters to inject multiple frames, (where // acts as a separator?) how do you know if a file has multiple frames? can u tell in grid view? can any frame be made into multiple frames?
    In Mp3tag it's \\. This is just a convention that Mp3tag uses. It appears in both the Tag Panel and in the grid view. In the Extended Tags dialog it always appears as separate fields when there are separate values (id3) or fields (Vorbis comments, APE tags).

    It is possible to have \\ as a character sequence within a field, so it's far from a perfect user interface. If you have the character sequence \\ in a field then you save the file, Mp3tag will split the field (which means putting in the null byte separator). I played with it just now and it only does this when you save individual files, not when you save multiple files, so it's a little quirky.

  5. #5
    MrSinatra
    Guest
    Jim,

    thank you thank you thank you! that was a really wonderful and useful breakdown. i am using what i learn here and at mp3tag to help winamp become more compatible with other techniques.

    i might have some follow ups later but for now i just wanted to thank you.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •