Jump to content

joeyb1275

Active Members
  • Posts

    63
  • Joined

  • Last visited

Reputation Activity

  1. Thanks
    joeyb1275 got a reaction from TheSaint in ID3 UDF ID3v1 & ID3v2 MP3 Tags   
    ID3.au3 UDF Description:
    Reads ID3v1.0, ID3v1.1, ID3v1.1+, ID3v2.2, ID3v2.3, ID3v2.4, APEv2 and MPEG frame header Writes ID3v1.1, ID3v2.3, ID3v2.4 Latest Version v3.4 20120610 AutoIt Version Required: 23rd December, 2011 - v3.3.8.0 of AutoIt ID3 functions only works with .mp3 files Notes:
    More info on the ID3 format can be found at http://www.id3.org/Developer_Information and http://en.wikipedia.org/wiki/ID3 More info on the APE tag format can be found at http://wiki.hydrogenaudio.org/index.php?title=APEv2_specification If you only care about getting the basic info ie. Album, Artist, Track and Song Title then look into using Udf: Get Extended FIle Properties More ID3 implementations http://www.id3.org/Implementations Changes in latest version (see files for all changes):
    ID3_v3.4.au3 (06/10/2012)
    Added resetting of all global ID3 variables in _ID3ReadTag() to make sure they are set back to the default values changed _ID3WriteTag() to determine what tags have been read and to only write back those version if $iTagVersion=-1 edited _ID3WriteTag() comments added $iReturnTypeFlag to _ID3GetTagField() inputs for ID3v2 functions fixed _ID3GetTagField() so that @extended is set to the Number of frames that exist with same $sFrameIDRequest fixed _h_ID3v2_EncodeStringToBinary() variable typo ($FrameData should be $bFrameData), thanks BrewManNH! ID3_Example_GUI_v3.4.au3 (06/10/2012)
    changed all _ID3v1Field_GetString and _ID3v2Field_GetString to _ID3GetTagField ID3_SimpleExamples_v3.4.au3 (06/10/2012)
    I have realized that the GUI example has become overly complex, so I have added this file to help show how I intended ID3.au3 to be used. Simple Read Tag Example:

    $Filename = FileOpenDialog ( "Select Mp3 File", "", "Muisc (*.mp3)") $sTagInfo = _ID3ReadTag($Filename) MsgBox(0,"TagInfo",$sTagInfo) MsgBox(0,"ID3v1 Title",_ID3GetTagField("Title")) ;Title from ID3v1 MsgBox(0,"ID3v2 Title",_ID3GetTagField("TIT2")) ;Title from ID3v2
    Simple Write Tag Example:

    $Filename = FileOpenDialog( "Select Mp3 File", "", "Muisc (*.mp3)") $sTagInfo = _ID3ReadTag($Filename) _ID3SetTagField("COMM","TEST COMMENT - ID3v2 Comment Tag") _ID3WriteTag($Filename)


    Latest Version v3.4 20120610
    ID3v2.3TagSpec.pdf
    ID3v2.4TagSpec.pdf


    ID3_Example_GUI_v3.4.au3
    ID3_SimpleExamples_v3.4.au3
    ID3_v3.4.au3
  2. Like
    joeyb1275 got a reaction from TheSaint in ID3 UDF ID3v1 & ID3v2 MP3 Tags   
    Hi All - 
    Thanks for all the posts with code fixes and updates.  I am looking to use this code again and I want to incorporate some of your suggestions, they look pretty good!
    I am going to try to use git and github to work on this code that way we can work on things together or when I am slacking off (which can happen for awhile) some one else can fork it and run with it.
    Below is the link.  I just upload and compiled it to make sure it all works.  I also post older version in case anybody wants those, but I have not tried compiling those yet, maybe I'll get to it this weekend.
    https://github.com/joeyb1275/ID3_UDF
     
  3. Like
    joeyb1275 got a reaction from nend in ID3 UDF ID3v1 & ID3v2 MP3 Tags   
    Hi All - 
    Thanks for all the posts with code fixes and updates.  I am looking to use this code again and I want to incorporate some of your suggestions, they look pretty good!
    I am going to try to use git and github to work on this code that way we can work on things together or when I am slacking off (which can happen for awhile) some one else can fork it and run with it.
    Below is the link.  I just upload and compiled it to make sure it all works.  I also post older version in case anybody wants those, but I have not tried compiling those yet, maybe I'll get to it this weekend.
    https://github.com/joeyb1275/ID3_UDF
     
  4. Like
    joeyb1275 got a reaction from argumentum in ID3 UDF ID3v1 & ID3v2 MP3 Tags   
    ID3.au3 UDF Description:
    Reads ID3v1.0, ID3v1.1, ID3v1.1+, ID3v2.2, ID3v2.3, ID3v2.4, APEv2 and MPEG frame header Writes ID3v1.1, ID3v2.3, ID3v2.4 Latest Version v3.4 20120610 AutoIt Version Required: 23rd December, 2011 - v3.3.8.0 of AutoIt ID3 functions only works with .mp3 files Notes:
    More info on the ID3 format can be found at http://www.id3.org/Developer_Information and http://en.wikipedia.org/wiki/ID3 More info on the APE tag format can be found at http://wiki.hydrogenaudio.org/index.php?title=APEv2_specification If you only care about getting the basic info ie. Album, Artist, Track and Song Title then look into using Udf: Get Extended FIle Properties More ID3 implementations http://www.id3.org/Implementations Changes in latest version (see files for all changes):
    ID3_v3.4.au3 (06/10/2012)
    Added resetting of all global ID3 variables in _ID3ReadTag() to make sure they are set back to the default values changed _ID3WriteTag() to determine what tags have been read and to only write back those version if $iTagVersion=-1 edited _ID3WriteTag() comments added $iReturnTypeFlag to _ID3GetTagField() inputs for ID3v2 functions fixed _ID3GetTagField() so that @extended is set to the Number of frames that exist with same $sFrameIDRequest fixed _h_ID3v2_EncodeStringToBinary() variable typo ($FrameData should be $bFrameData), thanks BrewManNH! ID3_Example_GUI_v3.4.au3 (06/10/2012)
    changed all _ID3v1Field_GetString and _ID3v2Field_GetString to _ID3GetTagField ID3_SimpleExamples_v3.4.au3 (06/10/2012)
    I have realized that the GUI example has become overly complex, so I have added this file to help show how I intended ID3.au3 to be used. Simple Read Tag Example:

    $Filename = FileOpenDialog ( "Select Mp3 File", "", "Muisc (*.mp3)") $sTagInfo = _ID3ReadTag($Filename) MsgBox(0,"TagInfo",$sTagInfo) MsgBox(0,"ID3v1 Title",_ID3GetTagField("Title")) ;Title from ID3v1 MsgBox(0,"ID3v2 Title",_ID3GetTagField("TIT2")) ;Title from ID3v2
    Simple Write Tag Example:

    $Filename = FileOpenDialog( "Select Mp3 File", "", "Muisc (*.mp3)") $sTagInfo = _ID3ReadTag($Filename) _ID3SetTagField("COMM","TEST COMMENT - ID3v2 Comment Tag") _ID3WriteTag($Filename)


    Latest Version v3.4 20120610
    ID3v2.3TagSpec.pdf
    ID3v2.4TagSpec.pdf


    ID3_Example_GUI_v3.4.au3
    ID3_SimpleExamples_v3.4.au3
    ID3_v3.4.au3
  5. Like
    joeyb1275 got a reaction from TheSaint in ID3 UDF ID3v1 & ID3v2 MP3 Tags   
    That is too bad, I have not built in a way to fix poorly formatted tags nor do I check for that. Do you have any suggestions on how the ID3 code can change to check for the v2.2 and v2.3 mixed tag?
    I like your idea of scanning for the first MPEG header! There is a function in the ID3 udf called _MPEG_GetFrameHeader() that you can use as a starting point if you haven't already done so. If you can get it working quickly I would like to add it to the ID3 udf.
  6. Like
    joeyb1275 reacted to TheSaint in ID3 UDF ID3v1 & ID3v2 MP3 Tags   
    You've worked it out, but I guess the easiest way to think about it, is to see ID3 tags as just one long (header type) string, that only really become fields during the read/write process. So in a sense, you are replacing a string of fields with a string of fields, not just a field with a field.

    I guess joeyb1275 could have made read an imperative before each write, which would be fine for single tag elements, but a lot of unnecessary repetition etc for multiple tags. Far better to read the whole string in once from file, modify the field/s within (in memory) then write/update the whole modified string once to file.
×
×
  • Create New...