Start a new topic

Option to remove unsupported tag-fields

Helium tries to preserve all tag-fields - which is most propably perfect for people using another tagger and Helium as library / player only.


But since I use Helium as an all-in-one-tool, I would like to get rid of all unsupported tag-fields in my files.

Reading those fields and mapping them to suported fields is perfectly good. But when saving tags, I would like to remove all unsupported fields and save only those I can edit with Helium.


Why do I want this?


1) Unsupported but mapped fields might push unwanted data into supported fields, since they will always be read, but never erased.

E.g.: Different taggers use different fields - especially for FLAC and OGG files. For example for album artist - some taggers use "ALBUM ARTIST", others use "ALBUMARTIST". Helium can only remove one of them (I think it's "ALBUMARTIST"), but will re-import the data from the other field in the next turn...


2) This data is unwanted and can be seen as trash that will be carried on without any use for me.


But since this is only my use-case, and other people might want to preserve those fields, this should be fully optional.


Another idea (and maybe the easier / better way) to handle this, would be to create a script-function that will remove unsupported tag-fields!


Well, I'm doing some try-and-error-testing with a little script - and I guess what I need is this:

void DeleteAllTagsNoDBUpdate(IEnumerable<NeonScriptTrack> tracks)


Then I could do this:


host.UpdateProgress("Removing tags from all selected files...");
host.RemoteCalls.DeleteAllTagsNoDBUpdate(host.Tracks);
foreach(var track in host.Tracks)
{
    host.UpdateProgress(string.Format("\nReassigning tags {0}/{1}", idx++, max));
}
host.RemoteCalls.CommitAllChanges(host.Tracks);
return true;

Ah, damnit, this is not what I need...
I would loose all non-db-fields by this script...

 

Wouldn't it be posible to:

1) Read the existing tags via a script

2) Delete all tags for the file

3) Writeback the tags kept in memory from step 1?


(Not tested)

> 1) Read the existing tags via a script
Nice idea - but how to do this?
There's no function to read data from tags, is there?
And even if there was, this would only preserve db-fields, since fields like involved people, that Helium does only support in tags, are not accessible through the script-engine...

 

>>There's no function to read data from tags, is there?

No only via the scripting objects. Alternatively you could access the tag-reading enging in Helium with some reflection code, but that will of course be a bit more of work..

Login or Signup to post a comment