Revision history for Perl modules MP3::Tag, MP3::Tag::ID3v1, MP3::Tag::ID3v2, MP3::Tag::File,
             and for Perl program tk-tag

Release Name: 0.40

* Updated documentation for MP3::Tag, MP3::Tag::ID3v1, MP3::Tag::ID3v2 and MP3::Tag::ID3v2-Data 

* Renamed some functions. The old names will still work, but try to use the new names.
  The following names were changed: 

  - MP3::Tag::getTags() to MP3::Tag::get_tags() 
  - MP3::Tag::newTag() to MP3::Tag::new_tag() 
  - MP3::Tag::ID3v1::removeTag() to MP3::Tag::ID3v1::remove_tag() 
  - MP3::Tag::ID3v1::writeTag() to MP3::Tag::ID3v1::write_tag() 
  - MP3::Tag::ID2v2::getFrameIDs() to MP3::Tag::ID3v2::get_frame_ids() 
  - MP3::Tag::ID2v2::getFrame() to MP3::Tag::ID3v2::get_frame() 
* Bugfix for
  - getFrame() returned "undef" as a string instead of simple undef
  - artist() produced an error when TPE1 is missing in TAG
* Bugfix for
  - DESTROY() checked only if $mp3->obj{filename} exists and not if it is defined before trying to 
    close it  
  - autoinfo() returns now a hash ref or an array as noted in the documentation 

* Bugfix for
  - genres() expected an id3v1-object as first parameter and a genre
    only as second parameter. Now the object can be omitted as in a call like
    MP3::Tag::ID3v1->genres($genre) used by and

* bugfix for
  - Filenames may contain surrounding whitespaces now

Release Name: 0.30
  - autoinfo() function added. This returns artist/songtitle/track/album.
    It tries to find this information in an ID3v1 or ID3v2 tag or tries 
    to extract it from the filename. The order in which this happens
    can be configured with the new config() function.
  - four new functions: artist(), song(), track() and album(). These
    are included for compability with the ID3v1 and filename module.
* /
  - All file access routines are collected in an extra modul now.
    This prevents circular references between and the
    modules. These circular references prevented Perl from calling
    the destructor for mp3-objects.
* tk-tag
  - Loading/Saving of binary data in frame-fields is supported now
  - tk-tag uses now the new what_data functionally of ID3v2 to offer 
    BrowseEntrys for TCON and TFLT and also for parts of APIC and COMR
  - Set Filename uses now the actual contents of the Tags not the old 
    saved one
  - Set Filename from ID3v2-Tag works now at least with Artist (%a),
    Album(%l) and Song (%s)
* ID3v2::what_data returns now also information about possible restricted
  input for some frame fields (APIC; TCON; COMR; TFLT are supported yet).

Release Name: 0.25

* Bug-fix for MP3::Tag
  If you created several mp3-objects for different files, the filehandles
  for each file were not used correctly. Thanks to hakimian for reporting
  this bug.
* Bug-fix for ID3v2::remove_tag()
  It was tried twice to rename one temp-file after removing the tag.
  Thanks to Brent Sarten <> for reporting this.
* Bug-fix for ID3v2::add_tag()
  When adding a second (or third, ...) frame of a kind, a wrong header
  could be written for this frame
* Bug-fix for tk-tag 
  When opening a new file, the contents of the ID3v2 tag of the last file
  would be copied to the ID3v2 tag of the new file for all frames which
  existed in the last file, but not in the new one.

Release Name: 0.21

* tk-tag has lots of new functions (see tk-tag README)
* getFrameIDs returns now always a hash ref of all existing frames, not only
  when called the first time
* Some minor problems in documentation are corrected.
* ID3v2::add_frame returns the name of the newly created frame, which can
  differ from the short name when already such a frame exists.

Release Name: 0.20 (beta)

--due to problems when run at windows:
  * Added a second seek to ID3v1::write_tag, as windows writes at a wrong 
    position otherwise
  * Setting Filehandle to binmode after opening a mp3 file 
  * ID3v2: write_tag creates a temp file (if neccessary) now in the same
    directory where the original mp3 files is located and not in /tmp

* Added, a graphical interface for MP3::Tag. is a alpha
* Added a new manpage MP3::Tag::ID3v2-Data which contains information about
  the ID3v2 frames and the data returned by MP3::Tag::Id3v2::getFrame() 
* Frames RVRB ("Reverb"), COMR ("Commercial frame"), AENC ("Audio encryption"),
  GRID ("Group identification registration"), RBUF ("Recommended buffer size")
  and SYTC ("Synchronized lyric/text") are now supported	
* Added some test to for creating new tags
* ID3v2::getFrameIDs returns now a hash reference, which contains the found
  frames. The keys are the 4 byte codes of the frames, which are needed for
  getFrame . The according values are the english (long) names of the frames.
* ID3v2::write_tag - Updating tagsize after writing tag 
* ID3v1::all() returns in array context all fields, otherwise only the song
* MP3::ID3v1::write_tag didn't returned an error if a file couldn't be opened
  for writing. Now it does.
* Renamed MP3::TAG to MP3::Tag following a suggestion of ANDK from CPAN
* Makefile.PL : Added that Compress::Zlib and File::Basename is needed for 
  installation of MP3::Tag

Release Name: 0.1 (beta)
* Added documentation to the modules

* Writing/removing of ID3v2.3 tags is supported now 
* Adding, changing, removing frames of ID3v2.3 is supported

* Changed directory structure
* Added file for proper install of modules

Release Name: 0.2-alpha
* ID3v2.3 compressed frames are supported now 
* changed directory structure, support librarys for MP3::Tag are now in a
* calls xview to show pictures, which were found in ID3v2 tags
  (sorry, not configurable at the moment, but easy to change in

Release Name: 0.1-alpha
This is the first alpha version. It contains perl modules to
read ID3v1/ID3v2 tags, but they are still lacking a lot of

* Reading / Writing ID3v1 works
* Reading of most frames of ID3v2.3 works

Included is a demo program, and a program to change ID3v1
tags and to set automatically the filename of a mp3 file: See
README.txt for details. More documentation is still lacking. Sorry.

MP3::Tag can be found at