Ich habe heute wieder ein paar Stunden rumgebastelt und immer mehr selbstzweifel angesetzt. Nachdem ich mühevoll eine Tonleiter auf dem Klavier aufgenommen habe (was, wohlgemerkt, immernoch so schlimm klingt wie bereits an Tagen zuvor) und in sich ewig hinziehender arbeit endlich ein paar Töne mit einem Audioschnittprogramm an dem viel zu langsamen PC extrahiert und als .wav exportiert habe, das ganze dann per USB auf meinen Pi gezogen habe und eingescripted habe, erhalte ich immernoch den selben Fehler. Hunderte male habe ich hin und herprobiert, bis ich dann auf die so banale Idee kam, einfach mal funktionierende Aufnahmen zu vergleichen. (Ich habe ja bereits Spiele programmiert und in jedem Spiel habe ich die selbe Technik zum einbinden von Musik verwendet, weil es einfach bisher fehlerfrei und Problemlos geklappt hat) Das Vergleichen dann dauerte auch seine Zeit, denn es stellte sich heraus, dass Maßgebend für den Fehler die Länge des Clips ist. fragt mich nicht.
Nun habe ich also eine Reihe von 14 Sekunden langen Clips, die (im Moment) 8 Verschiedene Töne beinhalten. Diese 8 Töne sind natürlich die Töne der Dur-Tonleiter. Die Aufgabe, die nun vor mir steht ist, die Clips verschieden lang abzuspielen. Meine Aktuelle Lösung ist performancemäßig nicht zu verantworten und funktioniert auch nicht überwältigend gut. Außerdem würde sie im Mehrstimmigen Bereich ein paar Probleme verursachen.
Für die, die daran interessiert sind ein bisschen code zu sehen: Hier wäre ein Beispiel für meine schlechte Umsetzung ;)
//Clip c
c.start();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
c.stop();
Für den Laien: der Clip wird im Hintergrund gestartet, das Ausführende Programm wartet 0,5 Sekunden und dann wird der Clip gestopt. Das hat zur folge, dass der Clip 0,5 Sekunden lang abgespielt wird. Leider hat das zur folge, dass in dieser halben Sekunde keine Andere Tätigkeit vom Programm ausgeführt werden kann, was bedeutet, dass Spätestens in diesem Punkt in der Mehrstimmigkeit Probleme auftreten.
Keine Kommentare:
Kommentar veröffentlichen