Trying to reduce dynamic memory use

char audiotags[NUMTAGS][27] = {"0000EE1E6E9E",

...
...

How big is a tag? 12 characters max? You can change the 27 to 13.

char audiotags[NUMTAGS][13] = {"0000EE1E6E9E",
...
...

Same for filenames; 8-dot-3 notation so max 12 characters; again change the second dimension to 13

That will reduce the memory usage for those arrays by over 50%.