Any tips to keep memory usage as low as possible?

Tanks, but i don't understand your code ;D

What I tried now:
I put

extern prog_char SOUND_P[];

in my often included System.h header file, and put
prog_char SOUND_P[] PROGMEM = "Sound.wav";

In one source file.

So it compiles fine, but when I call
char buffer[13];
strcpy_P(buffer, (char *)pgm_read_word(&SOUND_P));

My Arduino just restarts :frowning: