PHP-Code:
<?php

$maindir 
opendir("./sammlung");
while(
$i readdir($maindir)){
    if(
$i != "." && $i != ".."){
        
$interpretdir opendir("./sammlung/$i");
        while(
$j readdir($interpretdir)){
            if(
$j != "." && $j != ".."){
                
$albumdir opendir("./sammlung/$i/$j");
                while(
$k readdir($albumdir)){
                    if(
$k != "." && $k != ".."){
                        
$l substr($k0strlen($k) - 4);
                        echo 
"<a href=\"sammlung/$i/$j/$k\">$i - $l ($j)</a><br />";
                    }
                }
                
closedir($albumdir);
            }
        }
        
closedir($interpretdir);
    }
}
closedir($maindir);

?>
Das ganze öffnet einen Ordner (sammlung), guckt welche Ordner drin sind, öffnet die (Interpretenordner), guckt dort widerum, welche Ordner drin sind und öffnet die (Albenordner), liest was drin ist (Lieder) und gibt das aus.

In $i steht der Name des Interpreten, in $j der Name des Albums, in $k der Name der Datei und in $l der Name der Datei ohne die letzten vier Zeichen (um das .txt wegzukriegen).

Der Ordner, in dem die datei liegt, muss einen Unterordner namens sammlung haben, in dem die Interpretenordner sind.
Ich habe das ganze nur flüchtig getestet, aber es müsste funktionieren.