1 app for tagging is nice. If you start to devise it might become confusing. Like I can experiment with the filter, once I have something l like I add it in the autocorrector, this will even make more sens once you will have the add-ins, then we could experiment and then batch if we like the experiment.
One autocorrector instruction could be “load on table”, thought this may or may not be useful, it depend: I can see batch and table being use together for the failed one, like I can really see my self asking to load 100,000 by 1000 and then having all the failed one either kept loaded or loaded from a failed folder at the end “load failed from c:\My Music Failed”, so basically I can go on the table and just correct them manually and submit them again.
Ultimately people want to tag their library and update it once in a while (batch or not batch). All this discussion is mostly trying to get around the memory, I do not feel a second app is necessary to solve this issue, batching or having a db could solve this issue, I feel batching could quickly solve the issue in the mean time a db arrive.
For the table and the db, the best (but this is a bit long to implement) is to have a table with a buffer up and down that point to the db, so you only display let say a window of 1000 records and pre fetch 2000 records, 1000 records after and 1000 records before the currently displayed one, so if we move the slider up or down they are already cache (like a cache window of 1000 up and 1000 down), then when we arrive at the end of the display (current window), you display the cache window down and pre fetch the next 1000 and get rid of the 1000 in the cache window up and replace them by the previous current display etc… sorry if I didn’t explain well but this work really well this is basically a window view of the data (with a cache window up (for previous data) and a cache window down (for next data) and then you “slide” those 3 windows up and down following what the user want to see)