This also allows hiding static songs; I added that since it took about four lines extra code. Note that I've updated the Save() function a bit, and fixed some bugs I saw, but it's not used yet and it's no more tested than it was before.