Wall of Sound:
Die Wall of Sound ist ein kleines avantgardistisches Musikprojekt in Form einer Klang-Kollage, gebaut mit einem Perlskript, dem Konsolentool mpg321, etlichen MP3-Dateien und das Ganze unter Linux. Die Faszination liegt in der Kombination zwischen dem menschlichen Geist (Intuition) und kalter Maschinenlogik. Das Ergebnis ist meist überraschend.
Ziel ist dabei aber einfach das Experiment an sich.
Das heißt: Das Musikprojekt muss nicht zwingend "schön" klingen - nur interessant sollte es sein - es sei denn, man will eine Einschlafmusik kreieren (auch das geht damit!)
Die Idee ist dabei die folgende:
Es werden Sounddateien abgespielt. Die Pausen zwischen den Sounddateien sollen zufällig sein (muss ich noch reinprogrammieren) Auch muss es explizit möglich sein, dass eine Sounddatei noch gar nicht zu Ende ist, während eine andere (eine zweite, eine dritte,...eine n-te) zu spielen anfängt. Es soll aber auch nicht so sein, dass zu viele Soundfiles gleichzeitig beginnen und alles in einem Krach endet.
Die Entscheidung, welches Soundfile als nächstes gespielt werden soll, soll ein Zufallsgenerator treffen. Hierzu liest er alle Dateien in einem Verzeichnis ein, nummeriert diese und wählt aus diesem Nummern-Range eine Sounddatei zum Abspielen aus.
Man soll angeben können, wie viele Dateien insgesamt abgespielt werden sollen.
An die Sounds kommt man überall heran bzw. macht man selbst Aufnahmen mit entsprechendem Equipment.
Man kann dann Verzeichnisse anlegen und dort thematisch zusammengehörige Soundfiles speichern,z. B. "Natur", "Maschinen", "Vögel", "Unwetter",...der Phantasie sind keine Grenzen gesetzt!
Ich bitte um Nachsicht, dass das Perlskript ziemlich "quick and dirty", d.h. funktional und gnadenlos "straight" herunterprogrammiert worden ist - ohne Rücksicht auf Do's and Don'ts, auf Portierbarkeit, Vulnerabilities usw. Hauptsache: Es läuft auf einem kleinen Spass-Rechner, bei dem das alles auch völlig egal ist. Wer hier Ambitionen hat, kann gerne meine Version verbessern - dann veröffentliche ich sie hier...
Hier das Ergebnis eines zufälligen Beispiels einer "Wall Of Sound": Demo
Have fun!
Und nun das Perl-Skript:
#!/usr/bin/perl
#-----------------------------------
#Alle Dateien im Verzeichnis holen
#-----------------------------------
opendir(in,'./') || die $!;
@FILE_LIST=readdir(in);
close in;
#-------------------------------------------
# Alles raustun, was nicht auf .mp3 endet!
#-------------------------------------------
foreach (@FILE_LIST){
$file = "$_";
if ($file =~ m/mp3$/) {
push(@SOUND_LIST,$file);
}
}
system("clear");
foreach (@SOUND_LIST){
$soundfile = "$_";
$anz_soundfiles = $anz_soundfiles +1;
}
system ("clear");
print "Anzahl von MP3-Dateien, die im Verzeichnis sind: ";
print $anz_soundfiles;
print"\n";
print "----------------------------------------------------------------------------";
print"\n";
$max= $anz_soundfiles -1;
$ANZAHL_ZU_SPIELENDE_FILES=50;
for ( $I=1; $I< $ANZAHL_ZU_SPIELENDE_FILES ; $I +=1) {
print "\n";
print "Durchlauf Nr.";
printf("%3s", $I );
$index = int(rand($max)) +1;
print " Index: ";
printf("%4s", $index );
$selected_file = @SOUND_LIST[$index];
$selected_file = chr(34).$selected_file.chr(34);
print " Stück: ";
print $selected_file;
print "\n";
$execute = '/usr/bin/mpg321 -q '.$selected_file.' & ';
system($execute);
sleep(3);
}
print"\n";
print "-----------------------------------";
print "\n";
print "Ende";
print "\n";
print "\n";