Hi, i am using version 3.6.2. It seems to me that when adding or deleting cover art from a file, the file gets entirely re-written during saving.
This leads to very slow tagging, especially when using samba/cifs shares.
I have tested MP3, FLAC, and DSF files:
Kid3 does not write the tags itself, it uses third party libraries for the various audio files it supports. Therefore it is probably not the right place for a bug like this. Nevertheless I will try to help as far as possible.
On MP3 files, ID3v2.3.0 tags are placed at the beginning of the file. The usual operation to add some data to the beginning of a file is to write the data to be prepended and then append the old contents. The file gets re-written indeed. The trick to avoid rewriting is to add some padding, i.e. empty space which is currently not used. If this empty space is enough for the tags to be added, the operation will be fast because it can be overwritten without having to rewrite. So if you experience a fast operation it is probably because of the padding which is present in the file. If you want to remove the padding, you can remove the entire "Tag 2" with Kid3, save the file, and then add a new one. Now saving will take some time. To see how much padding is in a tag, you can use Mp3Diags.
Regarding how files are typically written, doing this over a network connection will transfer a huge amount of data forth and back and is therefore a bad idea. Better work directly on the remote machine or copy the files to a local drive, edit the tags and then write them back.
How do you access your Samba/CIFS share? From Linux using a low-level mount or using some higher level abstraction like GVFS? Note that GVFS does not support the truncate method and will therefore not work with libraries which use truncate. Using strace you can see that
Regarding the different formats: For most formats, there are multiple libraries available for Kid3, so please test the different libraries by selecting the appropriate metadata plugins (Settings/Plugins) and then restarting Kid3.
Please try the the different libraries and tell me how they behave.
Thank you very much for this extensive reply.
I access CIFS shares using a low-level mount (with fstab).
Setting metadata plugins in this order: Id3libMetadata > TaglibMetadata > OggFlacMetadata
fortunately fixes the problem for FLAC files (it now uses TaglibMetadata).
However, in the case of MP3 files (I suppose the program is using Id3libMetadata), files stil get re-written, although the program does not hang anymore, so that's an improvement.