Jump to content

joeyb1275

Active Members
  • Posts

    63
  • Joined

  • Last visited

Profile Information

  • Location
    OH

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

joeyb1275's Achievements

Wayfarer

Wayfarer (2/7)

5

Reputation

  1. 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
  2. I have verified that this is a bug. Thanks for letting me know about it Champak! I will get a fix out ASAP!
  3. What version of AutoIt are you using? I looked back at my previous releases and one big difference between ID3_v2.x.au3 and ID3_v3.x is that in the 3.x series I assume a newer version of Autoit is used (as stated in the first post) because the Dec() function changed. In older versions the Dec() function could not handle 64bit numbers so in versions 2.x I had my own custom function to handle reading the TagSize (The version of ID3.au3 that TheSaint posted there is using this custom function), but when they (the awesome people behind AutoIt) updated, they added more capability to the Dec() and so I use that now in 3.x versions. I think this is where this issue is, if not please let me know. I would like to fix the 3.x version and not resort back to the 2.x series just to fix it. Thanks for posting! Here is some more info; ID3_v3.4.au3: line 1315 -> Return Dec(Hex($bTagSize),2) From the documentation on the Dec() function http://www.autoitscript.com/autoit3/docs/functions/Dec.htm two inputs are ok and if flag = 2 -> string is interpretted as 64bit integer From the History of changes http://www.autoitscript.com/autoit3/docs/history.htm this change was made in 23rd December, 2011 - v3.3.8.0 AutoIt version. 23rd December, 2011 - v3.3.8.0 AutoIt: ...... Changed: COM Error handler passes error object as first parameter to user defined error function. Changed: COM Error handler properties are read-only. Changed: Dec() and Hex() work with 64bit integers. Changed: Parentheses are required when invoking objects after all method names in order to have correct internal handling. Changed: Dec(), Int(), Number() have second optional parameter defining non-default behavior. Changed: Hex() detects doubles internally and processes them respecting binary format. Changed: New visual style for the documetnation. Changed: 64bit integers have 16 characters display by default. .....
  4. Can you try calling _ID3ReadTag() first and let me know what it returns to see what kind of tags exist in the files? Have you tried calling _ID3RemoveTag() in a separate script? I would try files that already exist on the hard drive (not using inetget()) Have you tried removing each tag separately with _ID3RemoveTag()? I believe the error you are getting is from a fileread() call but I am not sure where in the UDF it is coming from. If you remove each tag separately we can try to narrow it down. I have not seen this error on any of my mp3 files that I have tested.
  5. Can you do a msgbox just before _ID3RemoveTag to show what $sPath is and that it is a valid path and file name?
  6. What is $sPath equal to before calling _ID3RemoveTag? I don't understand $sPath = '_path_[$a].mp3'
  7. Try _ID3RemoveTag($sPath,0) to remove all tags. Looks like I need to update the function description comments. The second input to the function should be an integer 0-4 where 0 - removes ID3v1, ID3v2 and APEv2 tags 1 - removes ID3v1 2 - removes ID3v2 3 - removes ID3v1 and ID3v2 4 - removes APEv2 only
  8. 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.
  9. I guess what I mean is that the way I would use something this is I would want to decrease the size of my existing mp3 files (over 10,000 files) all at once instead of dragging and dropping each one, maybe some way of selecting a folder. Just an idea...
  10. This is nice little tool. I did not know at first that I could dragNdrop an mp3 file and have it read, resize and write the album art, but once I found that out I liked it. I would probably use something like this but it would be nice if it could run on a lot of files. You might want to check out my latest ID3.au3 I think it could speed up your program a little. Nice work!
  11. It is good to hear that it has helped you. I have definitely learned a lot and I am still learning. I know MP3 tag reading/writing is not as popular as it used to be, but I still enjoy fixing and adding features to this UDF.
  12. TheSaint is correct. One major goal I had for version 3 was to speed up the reading/writing of tags and I found that reading/writing to the file separately for each frame was slower then reading/writing to memory. There are many ways to crack a nut, so if you have function suggestions I would be happy to try to incorporate them into future versions of ID3.au3. I have also released a new version v3.4, with small changes. I have included a new au3 file to show some simple examples, ID3_SimpleExamples.au3. Let me know if there are more examples that would help and I can add them. If the rapid updates are getting annoying, fear not, I will not likely be updating much more. I have my first child on the way and I don't think I will have much time in the near term for large updates. That being said if there is a major problem with a function I would still be able to make fixes and release as 3.4.X versions. Thanks for all the testing and input!
  13. Actually, you should only have to read in all the ID3v2 tags if that's all you are going to change then write only the ID3v2 tag back, so the code could look like $Filename = FileOpenDialog( "Select Mp3 File", "", "Muisc (*.mp3)") $sTagInfo = _ID3ReadTag($Filename,2) _ID3SetTagField("COMM","TEST COMMENT - ID3v2 Comment Tag") _ID3WriteTag($Filename,2) $FrameData = StringToBinary($sFrameText,3) ;UTF16 Big Endian Yeah that is definitely a mistake, it should be $bFrameData. Thanks!
×
×
  • Create New...