protected String composeNewFilename(String filename, String rename) throws UnsupportedTagException, InvalidDataException, IOException {
ID3Wrapper id3Wrapper = createId3Wrapper(filename);
String newFilename = rename;
newFilename = BufferTools.substitute(newFilename, "@N", formatTrack(id3Wrapper.getTrack()));
newFilename = BufferTools.substitute(newFilename, "@A", id3Wrapper.getArtist());
newFilename = BufferTools.substitute(newFilename, "@T", id3Wrapper.getTitle());
newFilename = BufferTools.substitute(newFilename, "@L", id3Wrapper.getAlbum());
newFilename = BufferTools.substitute(newFilename, "@Y", id3Wrapper.getYear());
newFilename = BufferTools.substitute(newFilename, "@G", id3Wrapper.getGenreDescription());
newFilename = BufferTools.substitute(newFilename, "?", null);
newFilename = BufferTools.substitute(newFilename, "*", null);
newFilename = BufferTools.substitute(newFilename, "/", null);
newFilename = BufferTools.substitute(newFilename, "\\", null);
newFilename = BufferTools.substitute(newFilename, " ", " ");
return newFilename;
}