PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Custom-Plugin mit FIR-Filtern



linux1972
27.10.2022, 13:00
Hallo,


so, jetzt habe ich mich endlich mal intensiv mit dem Aurora beschäftigt, den ich schon seit über einem Jahr hier rumliegen habe.


Da ich bislang eine DSP-Lösung bestehend auf miniSharc/Arduino mit selbstgebastelten DAC's, ADC's und digitaler Quellenumschaltung nutze,
hatte ich recht konkrete Vorstellungen bez. Anpassung der FW bzw. Plugin.


Soweit so gut, es hat sich alles gut umsetzten lassen dank sehr guter Doku, sauberer Architektur und sehr guter Umsetzung im Aurora Projekt.
Erstmal vielen Dank und großes Lob dafür an Raphael.


Meine durchgeführten Anpassungen:
IR-FB angelernt, Verwendung OLED-Display, Verwendung Drehencoder, feste preset-spezifische Laustärkeeinstellung, eigenes Plugin basierend auf 8Channel + 4x FIR mit 2048 Taps und 2x FIR mit 680 Taps (bei reduzierten max. Delays).


Nach drei Nächten Einarbeitung war das soweit umsetzbar und funktioniert auch (fast) einwandfrei.


Aber es gibt ein Problem: In der Ausprägung mit den genannten FIR-Filtern hängt sich der ADAU1452 reproduzierbar nach einer Weile auf. Es funktioniert mit Audiosignal ca. 2min alles so wie es soll (inkl. der FIR's, IIR,PEQ, Plugin, WiFi, IR,...), danach ist auf einmal Stille.
Der ESP32 inkl. aller Funktionen ist noch da, der ADAU1452 ist anscheinend weg. Wenn ich die beschriebenen FIR-Blöcke im SigmaStudio aus dem Plugin-Block rausziehe mit vor eingestellter IR, diese also dem Zugriff über das Plugin/ESP entziehe, passiert das gleiche.
Auch wenn ich die DSP-FW per SigmaStudio reinlade, passiert das Gleiche. In dem Fall sehe ich auch bei einer hinzugefügten Pegelanzeige, dass diese in dem Moment einfriert. Ein erneutes hochladen der DSP-FW funktionier anscheinend, es erfolgt aber keine "Wiederbelebung"
Die im Output vom SigmaStudio angezeigte (berechnete) Auslastung war ca.65%. Wenn ich mit der Anzahl der Taps spiele bzw. anderweitig Blöcke entferne kann ich die Zeitdauer bis zum Ausfall beeinflussen. Z.B. mit 6x 2048 Taps kommt der Ausfall schon nach 10s, mit 2x 2048 taps läuft es dauerhaft stabil.


Getestet habe ich mit SigmaStudio 4.6 und 4.7 . Als Basis für meine Anpassungen habe ich Aurora 2.2.2 verwendet.

Da ich im Prinzip keine praktische Erfahrung in der Programmierung von DSP's habe, ist mir nicht klar, ob es da noch Tuningmöglichkeiten gibt oder ob das beschriebene Verhalten im normalen Bereich liegt, also man einfach mehr Reserve bei der Rechenpower des DSP's einkalkulieren muss.


Hat irgendjemand Tipps/Ideen zur Lösung des Problems oder eine Erklärung ?


Dann ist mir noch etwas aufgefallen: der WiFi Verbindungsaufbau zum Heimnetz funktioniert bei mir nicht besonders zuverlässig. Ich habe mal mit der Anzahl der Retries und die Pausezeiten zw. den Funktionsaufrufen beim Verbindungsaufbau erhöht, das scheint die Zuverlässigkeit zu erhöhen. Ich werde mir das nochmal anschauen und ggf. berichten.

Güsse aus Mannheim

Achim

rkv
28.10.2022, 10:59
Hallo Achim,

ich würde versuchen, das Problem systematisch einzugrenzen. M.E. wäre Schritt 1 mal zu gucken, ob das originale Plugin 4FIRs und 8channels jeweils problemlos laufen. Danach dann schrittweise einzelne Blöcke hinzufügen.
Hast Du das Script sigma2aurora.py verwendet? Auch das ist wichtig. Oder alternativ für das Debugging in der ESP32-Software die Kommunikation mit dem DSP stilllegen (also die upload-Funktionen zum DSP auskommentieren) und dann Dein modifiziertes Programm mit dem USBi-Programmer über SigmaStudio einspielen.

Das wären so die Tips für den Start.

Raphael

P.S. Ich bin derzeit aus beruflichen Gründen etwas im Zeitmangel, es kann sein, dass ich etwas länger brauche, um hier zu antworten, ich bitte um Nachsicht. ;)

linux1972
29.10.2022, 21:18
Hallo Raphael,

erstmal vielen Dank für deine Tipps.
Ich habe jetzt mal das 4xFIR Plugin aus der V2.2.2 aufgespielt (die Originaldateien). Die IR mit 4096 Tabs habe ich mit Rephase erstellt und in alle vier Filter reingeladen. Ich habe alles bis auf Analog In/Out und Versorgung abgeklemmt.
Das Ergebnis ist das Gleiche, nach ca. 1,5 min ist Stille.
M.E. bedeutet das, dass ich entweder ein HW-Problem mit dem DSP habe oder dass die IR den DSP irgendwie abschießt. Ich habe mal eine zip mit den von mir verwendeten FW-Files und die IR angehängt. Ggf. kannst Du auchmal testen oder mir eine Test-IR schicken, von der Du weißt, dass sie funktioniert.

Grüße aus Mannheim

Achim

rkv
30.10.2022, 14:02
Ich werde Deine IRs mal bei mir hochladen, werde es aber nicht vor Ende der Woche schaffen.
Ich kann Dir morgen auch mal IRs schicken, die ich zum Testen verwendet habe.

Raphael

linux1972
30.10.2022, 23:48
Hallo Raphael,

es läuft jetzt stabil ! Ich habe jetzt mal mit meinem zweiten Aurora-Board getestet, damit ist kein Problem erkennbar,

Mein Plugin 8ch mit 6x FIR läuft nun einwandfrei, die kalkulierte Auslastung liegt bei 76%.

Ich tippe am ehesten auf die Spannungsversorgung von dem einen Board als Ursache, muß ich in den nächsten Tagen mal untersuchen.

Trotzdem vielen Dank für deine Unterstützung.

Ich habe mal einen Screenshot von dem Plugin angehängt, ggf. hat ja jemand Interesse daran.67835

Gruß

Achim

Micha_HK
31.10.2022, 07:24
Hi Achin,

ja, ich bekunde Interesse. Hast du das auf Github?

VG
Michael

linux1972
31.10.2022, 10:31
Hallo,
auf GitHub habe ich das nicht (ist nicht so meine Welt). Daher habe ich die Dateien einfach angehängt.

Zu den Eigenschaften:

- Die FIR's können max. 2048 Tabs (Bin mir noch nicht sicher ob kürzere IR's trotzdem die Latenz von 2048 Tabs erzeugen)

- Das Delay ist Limitiert auf 1000 Samples, also ca.20ms

- Das Plugin ist für den reinen Stereo-Betrieb gedacht, in der DSP-FW werden die Eingangskanäle, die den Ausgangskanälen 1+2 zugewiesen sind, auf sie restlichen 6 Ausgangskanäle verteilt.

- Die "Input-Filter" sind für die "Over-All" Klanganpassung gedacht

- Das Plugin ist Kompatibel zur ESP-FW V2.2.2

Noch eine Frage an Raphael: Weißt Du auswendig, ob bzw. an welchen Stellen man außer in der config.h noch drehen muss, um mehr als 16 Blöcke eines Typs zuzulassen ?

Gruß

Achim

fosti
31.10.2022, 10:41
FIR an sich ist eigentlich ganz einfach: Rekursive algebraische Filter!
Aber manchmal frage ich mich nach dem Grund für deren Einsatz! Baut ihr so grenzwertige Lautsprecherkonzepte, dass FIR wirklich notwendig ist um selbst eingebrockte Probleme "weil ich diese Chassis Kombination in diesem Gehäuse haben will und basta!" ........und nein, falsche Konzepte werden auch durch FIRs nicht besser! .....von der physikalisch bedingten Latenz mal ganz abgesehen

capslock
31.10.2022, 12:45
@ Fosti: Icing on the cake? Also FIR, um die Phasenverzerrungen von IIR bei den Übernahmefrequenzen geradezubiegen?

@linux: sehe ich das richtig, dass Du dem Eingangsignal neben FIR auch je drei high shelf und low shelf zukommen lassen kannst? Gibt es einen speziellen Grund, warum das letzte Kanalpaar kein FIR mehr bekommt?

Wenn Du den Weg zu diesem Plugin aufschreiben könntest, das wäre super hilfreich. Mit den bisherigen Anleitungen habe ich dafür immer zu viel Respekt gehabt. Danke

fosti
31.10.2022, 12:57
@ Fosti: Icing on the cake? Also FIR, um die Phasenverzerrungen von IIR bei den Übernahmefrequenzen geradezubiegen?

...

Genau...sie machen das weil sie es können.....ob das "icing of the cake" bei der Grimm Trennfrequenz von 1,5kHz hörbar ist, steht auf einem ganz anderen Blatt.....

linux1972
31.10.2022, 13:17
[QUOTE=fosti;331384...Aber manchmal frage ich mich nach dem Grund für deren Einsatz! ...[/QUOTE]

Ich betreibe ein Dreiwegesystem mit Beyma AMT, 8" MT und 15" TT. Vollaktiv, derzeit mit miniSharc. Irgendwann hatte ich mal nur aus Jux die Trennung mit extrem steilflankigen (quasi Brickwall) FIR Filtern ausprobiert. Das Konzept hat mich seitdem sowohl messtechnisch als auch subjektiv, auch im Vergleich mit IIR, immer wieder überzeugt. Ist halt irgendwie mein Ding und ich möchte einfach nicht mehr auf die Möglichkeit verzichten, das tun zu können.
Die Korrekturen im FG mache ich tatsächlich mit IIR, meine Erfahrung ist, das bei der Korrektur der Fehler im Amplitudenfrequenzgang mit IIR die Phase meistens in die richtige Richtung mit korrigiert wird und die Gruppenlaufzeit nicht darunter leidet.

Gruß
Achim

josh_cpct
31.10.2022, 14:14
Hallo Achim

Die Brickwall Filter (oder ähnlich) habe ich auch mal benutzt.
Bis dann ein Kollege mal seinen Finger in die Wunde legte. Er spielte ein Stück mit einem Schlagzeug-Solo, sehr trocken aufgenommen, wenig Halleffekt beigemischt.
Ich vermutete dass es sich um ein Elektronisches Schlagzeug mit Effekten handeln musste. Weil es nach wwwwwwupp wwwuuupp klang. Als ob man es rückwärts abspielte. Bis der Kollege dann meinte dass es eigentlich ein natürliches Schlagzeug war. Das war jetzt sehr speziell für meinen Fall mit 2 Wege, Trennfrequenz 100Hz.

Wie oft hört man Fehler nicht bis man sie identifiziert hat. Ab dann weiß man worauf man achten muss, und konnte die Artefakte in jeder normalen Musik auch hören.

Gruß
Josh

josh_cpct
31.10.2022, 14:38
FIR an sich ist eigentlich ganz einfach: Rekursive algebraische Filter!
Aber manchmal frage ich mich nach dem Grund für deren Einsatz! Baut ihr so grenzwertige Lautsprecherkonzepte, dass FIR wirklich notwendig ist um selbst eingebrockte Probleme "weil ich diese Chassis Kombination in diesem Gehäuse haben will und basta!" ........und nein, falsche Konzepte werden auch durch FIRs nicht besser! .....von der physikalisch bedingten Latenz mal ganz abgesehen

Fosti, ein Aspekt geht bei der Grundsatzdiskussion gern unter. Weil man ihn nur durch praktische Anwendung erfahren kann. FIR Software kann (nicht alle) eine vollautomatische Spiegelung des Frequenzgangs invertieren. In wenigen Sekunden ist der Frequenzgang nicht nur durch Naturgegebene Unlinearitäten bereinigt (Raummoden etc) sondern auch linker und rechter Kanal deckungsgleicher. Die lokalisations-Schärfe der Phantomquellen wird viel besser. Bei PEQing, selbst semiautomatisch von REW, gehen Stunden ins Land um grobe Annäherungsversuche herzubiegen.

Vor 15 Jahren habe ich PEQ mit Rauschen ca. 2 Tage lang feingetunt.
Mit REW geht das schon in 3 Stunden ganz gut. (Inkl EQ einstellen, DSP einspielen etc).
Mit FIR kann das in 15 Minuten perfekt sitzen, während die Linke hand noch den Kaffee hält.

Gruß
Josh

linux1972
31.10.2022, 15:12
Hallo Achim

Die Brickwall Filter (oder ähnlich) habe ich auch mal benutzt.
Bis dann ein Kollege mal seinen Finger in die Wunde legte. Er spielte ein Stück mit einem Schlagzeug-Solo, sehr trocken aufgenommen, wenig Halleffekt beigemischt.
Ich vermutete dass es sich um ein Elektronisches Schlagzeug mit Effekten handeln musste. Weil es nach wwwwwwupp wwwuuupp klang. Als ob man es rückwärts abspielte. Bis der Kollege dann meinte dass es eigentlich ein natürliches Schlagzeug war. Das war jetzt sehr speziell für meinen Fall mit 2 Wege, Trennfrequenz 100Hz.

Wie oft hört man Fehler nicht bis man sie identifiziert hat. Ab dann weiß man worauf man achten muss, und konnte die Artefakte in jeder normalen Musik auch hören.

Gruß
Josh

Du meinst wahrscheinlich das Preringing der FIR Filter. Das sieht man sehr Eindeutig in der Impulsantwort der einzelnen Chassis. Da ich aber symetrische FIR-Filter verwende, kann ich das in der Impulsantwort des Gesamtsystems nicht wiederfinden. Dadurch, das bei TP/HP das Preringing wohl invers ist, löscht sich das wohl gegenseitig aus. Artefakte höre ich (und auch andere) auch im direkten Vergleich mit IIR nicht (was aber nicht heißt, das keine da sind). Ich habe schon oft die Frage gestellt: "klingt da irgendwas komisch?". Mein Gefühl hat mir auch anfangs gesagt, bei einem derart unstetigen Verhalten muss es Artefakte geben, ich habe aber noch keine gefunden.

Gruß

josh_cpct
31.10.2022, 15:21
Hallo Achim

Ja. Das mit der Auslöschung soll theoretisch auch so sein. Im Modell-Rechner geht das auch perfekt.

Versuche das mal nur auf elektronischem Wege mit 2 unterschiedlichen Geräten, zwei identische aber phaseninvertierte Signale gegeneinander auszulöschen. Das wird schon schwer über 40dB Dämpfung hinauszukommen.

Im Raum ist es nochmal weniger. Weil ja Hoch- und Tieftöner an unterschiedlichen Orten sitzen, unterschiedliche Übertragungs- und Abstrahlverhalten haben.

Nimm ein Beispiel, verpole eine Seite der Stereolautsprecher und höhe eine Mono Quelle.
Das löscht sich auch nicht aus. Du hörst ein marginal leiseres (6-10dB leiser) verphastes Diffusfeld um dich herum.
So wird es auch dem Prering ergehen.

Gruß
Josh

linux1972
31.10.2022, 15:37
@ Fosti: Icing on the cake? Also FIR, um die Phasenverzerrungen von IIR bei den Übernahmefrequenzen geradezubiegen?

@linux: sehe ich das richtig, dass Du dem Eingangsignal neben FIR auch je drei high shelf und low shelf zukommen lassen kannst? Gibt es einen speziellen Grund, warum das letzte Kanalpaar kein FIR mehr bekommt?

Wenn Du den Weg zu diesem Plugin aufschreiben könntest, das wäre super hilfreich. Mit den bisherigen Anleitungen habe ich dafür immer zu viel Respekt gehabt. Danke

Eingangsseitig stehen für das Stereo-Kanalpaar 10xPEQ's, 4x Highshelf und 4x Lowshelf zur "Over-All" FG Korrektur zur Verfügung. Da ich einen Dreiwegerich aktiviere brauche ich die letzten beiden Kanäle eigentlich nicht. Daher wollte ich mir keine Tabs klauen.

Was die Erstellung des Plugins anbelangt finde ich Raphaels Anleitung eigentlich ziemlich gut. Das einzige, was ich anfangs nicht kapiert hatte war, dass es im Workflow zwei Varianten von der dsp.html gibt. Die eine im Ordner ...sources\webapp\plugins\... in der man die Anpassungen vornehmen muss und die Andere im output-Ordner des Tools sigma2aurora. Diese sieht der ersten ziemlich ähnlich und wird von sigma2aurora aus der ersten generiert.
Was die Modifikation der dsp.html anbelangt, muss ich sagen, dass ich noch nie irgendwas mit html gemacht habe. Aber mit "try and error" kommt man da schon weiter.

Bei Bedarf kann ich mein bescheidenes Wissen aber auch mal im Rahmen eines Webmeetings teilen.

Gruß

Achim

fosti
31.10.2022, 15:39
.
Mit FIR kann das in 15 Minuten perfekt sitzen, während die Linke hand noch den Kaffee hält.

Gruß
Josh
Jo....makes funny sounds.... wie Toole und Olive sagen....wenn Du es richtig machst :prost: ansonsten funny sounds :D

linux1972
31.10.2022, 15:43
Hallo Achim

Ja. Das mit der Auslöschung soll theoretisch auch so sein. Im Modell-Rechner geht das auch perfekt.

Versuche das mal nur auf elektronischem Wege mit 2 unterschiedlichen Geräten, zwei identische aber phaseninvertierte Signale gegeneinander auszulöschen. Das wird schon schwer über 40dB Dämpfung hinauszukommen.

Im Raum ist es nochmal weniger. Weil ja Hoch- und Tieftöner an unterschiedlichen Orten sitzen, unterschiedliche Übertragungs- und Abstrahlverhalten haben.

Nimm ein Beispiel, verpole eine Seite der Stereolautsprecher und höhe eine Mono Quelle.
Das löscht sich auch nicht aus. Du hörst ein marginal leiseres (6-10dB leiser) verphastes Diffusfeld um dich herum.
So wird es auch dem Prering ergehen.

Gruß
Josh

Ich bin da zu 100% bei Dir, in der Realität scheint die Auslöschung aber ausreichend hoch zu sein, dass zumindest ich bisher keine Artefakte gehört habe. Ich muss aber auch zugeben, dass ich ausschließlich im Sweetspot höre. Abseits des Sweetspots sind andere Lösungen evtl. besser.

Gruß