Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

29.02.2012, 21:05

Soundbild (Audiovisualisierung)

Von der Qualität professioneller Audio-Visualisierer wie Milkdrop bin ich zwar noch ein gutes Stück entfernt, aber die Entwicklung macht trotzdem ziemlich Spass.
Als Programmiersprache verwende ich D und greife über Derelict auf SDL, OpenGL und OpenAL zu. Probleme hatte ich vor allem aus den Audiosignalen brauchbare Daten zu sammeln. Mittlererweile lasse ich pro Bild drei mal eine Furieranalyse laufen und mittel die Werte.

Zur Zeit sieht das Ergebnis so aus:

Update, 28. April:

Update, 24. April:

Update, 9. März:

Update, 6. März:



Freue mich über Feedback
Musikvisualisierungsprojekt Soundbild 2

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Armin_wf« (28.04.2012, 16:29)


drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

29.02.2012, 21:43

Noch ein wenig Struktur und zu extrem, aber bin gespannt was draus wird (sowas schwebt mir auch im Kopf rum mal zu machen :)).

Um dem ganzen ein wenig die Härte zu nehmen würde ich die Farben weniger schnell abklingen lassen. So dass möglichst alles ein wenig farbig bleibt und die neuen Töne sozusagen neue Farbe rein bringen und sich vermischen.

Btw:
Willkommen im Forum!

Squareys

Frischling

Beiträge: 35

Wohnort: Konstanz

Beruf: VR Development Lead bei Vhite Rabbit.

  • Private Nachricht senden

3

29.02.2012, 21:52

Gefällt mir sehr! Ich hab allerdings kurz gebraucht um die Visualisierung zu verstehen ;)

Hast du die Fourieranalyse selber geschrieben, oder ist die in OpenAL integriert? Ich suche sowas schon länger... :D

4

29.02.2012, 22:01

Danke schön :)

Denke auch, dass die Anzeige noch zu direkt ist, drakon. Tatsächlich lasse ich gar nicht die Farben abklingen, sondern zeige in jedem Frame genau die Töne in der Itensität an, die ich zu diesem Zeitpunkt aus der Furieranalyse berechnet habe.



Die Analyse ist nicht in OpenAL enthalten. Da mein Mathe-Unterricht schon einige Zeit her ist, habe ich mir hilfe bei googel gesucht. Kann sie dir gerne schicken Squareys.
Musikvisualisierungsprojekt Soundbild 2

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

5

29.02.2012, 22:03

Kann mich nur anschließen, bisher ganz ordentlich, brauchte aber auch ein wenig bis ich das Muster verstanden habe.
Schön noch jemanden zu treffen, der in D programmiert. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Beiträge: 721

Wohnort: /dev/null

Beruf: Software-Entwickler/Nerd

  • Private Nachricht senden

6

29.02.2012, 22:30

@Squareys:
Man will's nicht glauben, aber selbst eine DFT in einem Shader bei 1024² großen Bildern ist noch recht performant, wenn man bedenkt, wie lange es auf der CPU dauern würde. FFTs sind im Allgemeinen eher einfach umzusetzen, allerdings erhöht sich mEn die Komplexität, wenn man das ganze auf die Grafikkarte schieben will. Ich empfehle für den Einstieg eventuell einfach mal die rekursive FFT aus der Wikipedia zu übertragen. Anschließend könnte man auf den Cooley-Tukey Algorithmus umsatteln, der zwar nicht absolut der effizienteste, allerdings noch relativ einfach zu implementieren ist.

Wenn man sich Schreibarbeit ersparen will, dann kann man auch eine Hartley-Transformationen durchführen. Das Resultat ist äquivalent zur Fourier-Transformation, allerdings braucht man weniger RenderTargets und damit weniger Bandbreite auf der Grafikkarte, weil die FHT sich nur in reelwertigen Bereichen bewegt, während die FFT ja auf C abbildet. Die Hartley-Transformation kann man auch mit dem Cooley-Tukey Algorithmus umsetzen. Nachteil ist, dass man einen bestimmten Radix einhalten muss( für gewöhnlich nimmt man 2 oder 4, Verrückte 8 oder höher... ).

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

29.02.2012, 22:33

Muster verstehen? Für mich siehts wie ein Kreis aus;) Oder was meint ihr? Ist an sich ne wirklich interessante Sache. So etwas wollte ich lange schon mal machen aber hab irgendwie nie richtig damit angefangen. Sollte ich bei Gelegenheit vielleicht doch mal testen;) Bis jetzt gefällts mir ganz gut. Ich finde jedoch auch, dass die Farben eine Abklingzeit bekommen sollten. Das sollte ja recht einfach umzusetzen sein.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

8

29.02.2012, 22:39

Muster verstehen? Für mich siehts wie ein Kreis aus;) Oder was meint ihr? Ist an sich ne wirklich interessante Sache. So etwas wollte ich lange schon mal machen aber hab irgendwie nie richtig damit angefangen. Sollte ich bei Gelegenheit vielleicht doch mal testen;) Bis jetzt gefällts mir ganz gut. Ich finde jedoch auch, dass die Farben eine Abklingzeit bekommen sollten. Das sollte ja recht einfach umzusetzen sein.

Mir kam das auftauchen und verschwinden der visuell dargestellten Töne so schnell vor, das ich erst nicht folgen konnte, daher war ich etwas verwirrt. :)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

9

29.02.2012, 23:42

Schön noch jemanden zu treffen, der in D programmiert.


Freue mich ebenso, ist ja leider nicht so stark verbreitet.
Musikvisualisierungsprojekt Soundbild 2

10

06.03.2012, 14:49

Habe eure Vorschläge beherzigt, im ersten Post ist das neue Video. Langsam wird es ja :)
Musikvisualisierungsprojekt Soundbild 2

Werbeanzeige