Beat-Light

TreCore

Mitglied
Hiho Leute :)

komm ich direkt mal zu meinem Problem:
ich möchte eine Musik-Datei einlesen und diese genau auslesen,
damit ich die Frequenzen etc. dazu nutzen kann um
eine Lampe nach Beat leuchten zu lassen.
(Hoher Beat -> helles Licht, kleiner Beat -> dunkleres Licht)
Nun hab ich bereits die Musik-Datei (WAV) eingelesen,
per FFT die Teilfrequenzen berechnet (Array mit 32 floats)
und versucht mit diesen Frequenzen ein Licht nach beat leuchten zu lassen.
Einmal per Durchschnitt (größte Frequenz von den Array),
einmal per Höchstenwert (max von den Array)
und dann nochmal beides aber mit einem smootheren Übergang durch Annährung mit ms
Leider ergibt das nicht mein erwünschtes Ergebnis ... :/
Was könnte ich tun damit es besser auf den Beats leuchtet?

Hier nochmal mein Code mit durchschnitt und smoothen Übergang.
PS: da es eig. egal ist ob ich ein Licht oder eine Farbe von einem 3D-Objekt änder habe ich erstmal ein Cube verwendet
Java:
    public void update(long delta) {
        cube.update(delta);

        double[] values = spectrumSoundThread.getFreqTable();
        float testValue = 0;
        if (values != null) {
            for (double value : values)
                testValue += value;
        }
        Vector3f diffuse = cube.getMaterial().getDiffuse(); //Diffuse-Farbe einholen
        float should = 1 - testValue / 32; //Soll-Wert
        float difference = should - diffuse.y; //Differenz zum Soll-Wert
        // Farbänderung mit Zeitübergang (nur für Grün)
        diffuse.y += ((difference / 1000 * delta) * speed); // speed = 25f;
        if(diffuse.y > 1.0f)
            diffuse.y = 1;
    }
 

TreCore

Mitglied
Ok ... ich habs nun selber gelöst ...
Es reicht eigentlich wirklich was ich implementiert hab.
Ich hatte nur festgestellt das es ein kleines Problem mit einem Thread gab,
der die Frequenzen etwas verspätet zurück gegeben hatte ...
was wiederum für Verzögerungen auf den Effekt hatte.
 

windl

Bekanntes Mitglied
Hi TreCore,

würdest Du mir den kompletten Source einmal senden?
Das klingt extreme interessant. Kann dein Source denn auch mit MP3's umgehen?

Danke
Uwe
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben