2016-07-01 37 views
0

Ich möchte einen Musik-Visualizer erstellen, und dazu möchte ich ein Array erstellen, das Anweisungen in der Reihenfolge des Auftretens in der Musik sichert. Ich möchte dann eine Funktion erstellen, die das Array mit einer festgelegten Geschwindigkeit analysiert und die Anweisungen ausführt.Timing-basierte Ereignisse in Verarbeitung

So habe ich zum Beispiel ein Array mit {a, b, a, b, a} und für jeden a wird der Bildschirm rot für jeden b der Bildschirm wird schwarz.

Ich versuchte mit Threads und die sleep() - Funktion, aber es würde nicht wieder aufwachen. Ich bin ehrlich gesagt ratlos, was ich als nächstes tun soll.

+0

Sie müssen zwei Threads synchronisieren. Sie können andere Threads, die nicht miteinander synchronisiert sind, nicht "benachrichtigen"(). – mob41

+0

Wenn Sie SO neu sind, sehen Sie [hier] (http://stackoverflow.com/help/how-to-ask), wie Sie eine gute Frage stellen. – mob41

+0

@ user3348521 würde etwas wie [this] (http://stackoverflow.com/questions/12417937/create-a-simple-countdown-in-processing/12421641#12421641) helfen? –

Antwort

0

Sie können den modulo Operator zusammen mit der frameCount Variable verwenden, um alle X Frames zu tun.

Hier ist ein kleines Beispiel, das den Hintergrund alle 60 Frames ändert, oder einmal pro Sekunde:

void draw() { 
    if (frameCount % 60 == 0) { 
    background(random(255), random(255), random(255)); 
    } 
} 

Diese verwendet hartcodierte 60 den Hintergrund einmal pro Sekunde zu ändern, aber man konnte die Zahl ist von einem bekommen Array stattdessen.