Der Umgang mit Ultrastar-ng (Karaokeprogramm ähnlich S.i.n.g.s.t.a.r)
Ultrastar Deluxe bzw. Ultrastar-ng sind Karaoke-Programme, die auf Linux laufen und das beliebte Konsolenspiel Sing...Star des großen japanischen Technologiekonzerns für den PC ersetzen. Es ist über
apt-get install ultrastar-ng
installierbar.
Man kann auf diversen Seiten im Netz Textdateien herunterladen, welche für bestimmte Lieder Textinformationen enthalten. Diese Textdateien müssen sich mit den entsprechenden MP3s der Lieder im jeweils selben Ordner befinden, damit ultrastar das Lied als Karakokelied erkennt.
Man lädt also die Textdateien aus dem Netz. Das ist so halb legal, da ja auch Text intellektuelles Eigentum ist. Die legalen MP3s, die man auf dem eigenen Rechner hat (von Kauf CDs gerippt, oder aus dem Internet gekauft), müssen nun jeweils in einen Ordner gemeinsam mit der Textdatei aus dem Internet.
Standardmäßig müssen die MP3s und die Textdateien für die Lieder für ultrastar-ng im Ordner:
/usr/share/games/ultrastar-ng/songs
liegen.
Hat man nun eine Vielzahl von Textdateien für Lieder heruntergeladen und möchte sie nun in die Ordner tun, steht man vor dem Problem, daß man jeden einzelnen Ordner mit jeweiligem Titel und Interpreten manuell erstellen muß und dann manuell die MP3s, wie die Textdateien auf die entsprechenden Ordner verteilen muß.
Es gibt nun zwei Möglichkeiten:
1.Man erstellt mittels eines Scripts eine Textdatei, in welcher alle txt-Dateien des Verzeichnisses in eine Textdatei kopiert werden und führt dann ein weiteres Script aus, um die Ordner zu erstellen und die Dateien hineinzukopieren:
Also man erstellt zunächst eine Datei (rechte Maustaste ; neu ; Textdatei) und nennt die dann dateiliste_erstellen.sh
Folgenden Text kopieren und in die Datei mit dem Texteditor einfügen. Speichern, schließen.
Dann rechte Maustaste und auf eigenschaften: Kreuzchen auf "Ausführbar"; aktivieren.
Diese sh-Datei in den Ordner mit den ganzen Textdateien kopieren (wenn man im Konqueror ist) F4 drücken und dann in die Konsole eingeben: ./dateiliste_erstellen.sh . Enter drücken.
Die Dateiliste mit den Namen befindet sich nun im Ordner.
#!/bin/bash
for i in "`cat ULTRASTAR_DATEILISTE.txt`"
do
mkdir `basename "$i" .txt`
cp -a "$i" `basename "$i" .txt`
done
Anschließend folgenden Text in ein zweites Script schreiben und text_zu_ordner.sh nennen. Wie oben ausführbar machen und in der Konsole mit ./ text_zu_ordner.sh ausführen.
while read x; do
mv -f "$x" /tmp
mkdir "$x" "
mv -f "/tmp/$x" "$x"
done <<EOT
$(cat ULTRASTAR_DATEILISTE.txt)
EOT
Viel einfacher geht aber die folgende Variante:
Erstellung von Ordnern ohne Dateilistendatei
while read x; do
mkdir -p "$x"
done <<EOT
$(cat liste.txt)
EOT
Nun sind alle Ordner erstellt.
Es müssen nun jeweils eine
mp3? und die dazugehörige txt Datei in einem Verzeichnis sein.
Die Textdatei muß im Anschluß editiert werden, daß sie mit der
mp3? synchron ist:
"#
Yesterday ∞"
"#
The ∞ Beatles"
"#MP3:Beatles - Yesterday.
mp3?"
"#
Beatles ∞ - Yesterday[CO].jpg"
"#
Beatles ∞ - Yesterday[BG].jpg"
"#
96 ∞"
"#
5100 ∞"
So fangen die Textdateien an.
nun schaut nun, ob in ultrastar-ng die
mp3? mit dem Text synchron ist. Wenn nicht, muß die Anfangszeit in der Textdatei geändert werden. Die Anfangszeit ist in der Zeile "GAP" zu finden (auf keinen Fall den BPM-Wert ändern, da sich dann die Geschwindigkeit des Textes verändert und die Wahrscheinlichkeit, daß das dann noch am Ende des Liedes alles synchron ist, fast gleich null sein dürfte).
Man muß nun einfach in den sauren Apfel beißen und, da wo nötig, das so lange nachjustieren, bis
mp3? und Text synchron sind.