Go Down

Topic: [Beratung, FFT] LED Beleuchtung wie in der Diskothek (Read 228 times) previous topic - next topic

musicandpassion

Apr 25, 2020, 03:03 pm Last Edit: Apr 25, 2020, 03:45 pm by musicandpassion
Moin!

Ich würde mir sehr gerne eure Meinung anhören zu meinem nun vorgestellten Projekt.

Kurz zu mir: Ich bin 23 und bin ein sehr begeisterter Technikmensch. Schon vor Jahren hatte ich in der Berufsschule Berührungspunkte mit einem Arduino. Damals waren das natürlich nur kleine Spielereien wie eine LED zum leuchten kriegen, sie blinken lassen, etc. Jedenfalls ist das Thema bei mir nun wieder hochgekommen. Ich will meinen eigenen Arduino haben! Allgemeines Verständnis von der Programmierung ist mehr als vorhanden. Seit Jahren programmiere ich hobbymäßig an zwei Spielen. Ebenfalls bin ich seit Jahren Hobby-DJ. Es wird Zeit diese beiden Hobbys zu vereinen!

Konkret geht es mir darum, dass ich eure Empfehlung benötige, welches Board für mein Projekt nötig wäre. Ich kann es schlicht einfach nicht einschätzen, wie viel RAM und wie stark der Prozessor sein muss, damit ich das realisieren kann, wie ich es vor habe. Ich habe in den letzten 2 Tagen intensiv recherchiert. Ich bin über die diversen Arduino, Teensy und ESP Boards gestolpert, ebenfalls über Arduino FFT.

Doch nun zu meinem Vorhaben:

Ich will mir eine LED Beleuchtung bauen, die abhängig von der aktuell gespielten Musik leuchtet. Der Input erfolgt direkt über das Anschließen des Audiokabels an das Board. Das komplette System wird also parallel zum Auflegen dazugeschaltet.


Output Mischpult -> Splitter -> je Input Board und Input Lautsprecher

Wichtig ist mir die Verarbeitung des Audiosignals in Echtzeit.


Ich werde 5050er RGB LED Stripes verwenden. Dass ich ein Netzteil benötige, welches genug Ampere liefert, ist mir bewusst. Natürlich abhängig von der zu verwendeten Länge der Stripes. Ich denke ich werde da schon auf einige Meter kommen. 1-2 Meter garantiert. Darüber hinaus? Werde ich schauen, ist aber jetzt nicht relevant.

Per FFT will ich die gespielte Musik analysieren und so genau wie es geht in deren Hz Abstufungen zerlegen. Je genauer, desto besser! Da ich hauptsächlich Electro House, Hardstyle und Rawstyle auflege, sind mir die tiefen Frequenzen sehr wichtig. Das Optimum der Analyse wäre ab 40Hz in 40Hz Schritten bis hoch zu 400Hz. Alles darüber muss nicht so genau sein. Aber ich denke, wenn ich schon so eine genaue Analyse hin bekomme, dann im kompletten Spektrum, richtig? Natürlich nicht in absoluten Zahlen ausgedrückt.

Hier eine Veranschaulichung. An dem schwarz markierten Bereich habe ich großes Interesse.

Die automatische Visualisierung wird ermöglicht durch das parallele ansteuern mehrerer LED Strips. Wie viele das sein sollen, keine Ahnung. Je mehr, desto besser! 10 erachte ich als das absolute Minimum, wobei ich gerne schon 10 nur für die tiefen Frequenzen ansteuern möchte. Wünschenswert wäre wirklich, wie oben beschrieben, je ein LED Stripe für die Frequenzen ab 40Hz in 40Hz Schritten bishin zu 400Hz. Sollte das so klappen, werden es wohl ca 20 einzelne Stripes werden. 10 für die tiefen und je 5 für die mittleren und hohen Frequenzen.

Nice-to-have
Doch damit nicht genug. Ebenfalls will ich, dass ich einzelne Stripes temporär überschreiben kann um festgelegte Effekte zu ermöglichen. Ein sehr schönes Beispiel ist der Strobo-Effekt in Verbindung mit bestimmten Abschnitten der Tracks. Anwendungsbeispiel wären hier die letzten 32 Beats des Aufbaus bis der Drop kommt. Dort fängt es an, dass der Kick erst im 1/8 Takt schlägt, dann im 1/16 und schlussendlich im 1/32 Takt. Passend zu diesem jeweiligen Takt ein Strobo-Effekt wäre der Hammer!
So an sich könnte ich diesen Effekt auch auslagern auf einem anderen Arduino Board falls das einfach zu viel des Guten ist und es zu viel Rechenleistung kostet. Schön wäre es zwar nicht, als Notlösung aber akzeptabel. Würde aber leider auch bedeuten, dass ich nicht die maximale Kontrolle/Kreativität besitzen würde um wirklich ohne Grenzen ein Lichtspektakel zu ermöglichen.

Diese Effekte müssten natürlich auch an der BPM angepasst werden. Ich stelle mir das so vor, dass ich die Effekte festlege und lediglich nur noch manuell die Geschwindigkeit anpasse. Input in Form von Tasten wären hier dann von Nöten. Ebenfalls ein kleines Display um mir die aktuelle BPM Anzahl anzeigen zulassen. Natürlich dann noch weitere Tasten zum triggern der Effekte. Doch dieser Abschnitt sollte kein Problem darstellen. Einfach umzusetzen, denke ich mal.

Fragen
1. Ist das Projekt überhaupt mit irgendeinem Board realisierbar? Ich nehme mal an, die Arduinos sind schlicht zu schwach laut meinem Eindruck meiner Recherche. Wenn, dann würden nur Teensy oder die ESP Boards in Frage kommen? Knackpunkt RAM?
2. Wie genau wird die Musik via FFT analysiert? Ist meine Anforderung für die tiefen Frequenzen realisierbar?

Ich bedanke mich für das Lesen meines Projektes und hoffe auf zahlreiches Feedback!  :)

combie

Quote
2. Wie genau wird die Musik via FFT analysiert?
Zur Funktion der FFT gibts eigene Artikel, z.B. Wikipedia.

Quote
Ich nehme mal an, die Arduinos sind schlicht zu schwach laut meinem Eindruck meiner Recherche.
Es gibt schon leistungsstarke Arduino kompatible Boards.

Beispiel:
Sipeed Maix Dock M1w

FFT in Hardware
Audioprozessor
6MB RAM
2 Kerne 600MHz
usw.
Gefährlich, was Theorien aus Menschen machen können.
Schlimmer, was Menschen aus Theorien machen.


musicandpassion

Huch, ihr antwortet ja schnell. :D

Es gibt schon leistungsstarke Arduino kompatible Boards.

Beispiel:
Sipeed Maix Dock M1w

FFT in Hardware
Audioprozessor
6MB RAM
2 Kerne 600MHz
usw.
"Probieren geht über studieren"

Zerlege dein Projekt in Teilprojekte, die du dann später "zusammenlöten" kannst, wenn du mit dem Teilergebnis zufrieden bist :)
Das gesamte Projekt wird auch in Teilprojekte zerlegt. Ich möchte lediglich dank eurer Erfahrungen versuchen, mir ein Board zu kaufen, das auch leistungsstark genug ist. Klar kann ich einfach hingehen und mir ein Board kaufen welches mehr als genug Leistung besitzt, aber muss das unbedingt sein? Daher bin ich hier und hoffe, es werden Erfahrungen (= Einschätzung) mit mir geteilt um eine Entscheidung aufgrund von eben diesen Erfahrungen fällen zu können und nicht aufgrund von "sollte stark genug sein".

Tommy56

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Go Up