Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Welchen DSP mit FIR
#41
loki schrieb:Ich habe mir acourate convolver mal angesehen. Für meine Anwendung gibt es ein Problem: die Latenz von einigen hundert ms. Aber das gilt wohl für alle FIRs. Es soll mit Videos funktionieren ohne das Bild zu verzögern. Ansonsten scheint es eine gute und zuverlässige Angelegenheit mit einzigartigen Funtionen zu sein.


Ich meine mal gelesen zu haben, dass maximal 40ms erträglich sind.
Mit einer ordentlichen Anzahl Partitionen und wenig Latenz bei der restlichen Verarbeitung des Signals, sollte das kein Problem sein.
Da reicht ein Raspi aber nicht mehr...

Edit: Hups - ist ja garnicht der Raspi-Thread. Also Korrektur:
"da reicht dann keine schwachbrüstige Hardware mehr" Wink
Form follows function...
Zitieren

#42
eltipo schrieb:Das Ding läuft absolut super, und hier klappts auch vernünftig mit dem Übertragen der Lizenz von einem Rechner auf den anderen....Big Grin
Wenn ich dafür jedes Mal Uli angeschrieben hätte, wäre der jetzt inner Klappse...Rolleyes

Also wenn du da auf Dirac anspielst hab ich da gute Nachrichten für Dirac Nutzer
Es gibt seit einiger Zeit das Customer Portal.
Also ich kann mittlerweile sogar mehrmals täglich die Lizenz löschen und auf einen anderen Rechner installierern.
Bei mir scheint dene sogar ein Missgeschick passiert zu sein.
Ich kann trotz Stereolizenz 2 Rechner aktivieren.
https://portal.dirac.se/sign_in.php
hier der Link.
VG
Zitieren

#43
The Alchemist schrieb:Man kann mit Acourate Lizenzen Übertragen?
Das war eigentlich mein Hauptargument gegen Acourate, die Kopplung an den Rechner.

Gruß

Convolver....Convolver....

Acourate ist immer noch an die eine Hardware gebunden.
Der
Zitat:Acourate Convolver
kann ohne Uli beim einen Rechner abgemeldet und beim anderen angemeldet werden.
Ein Riesenfortschritt.

Da ich mir ein neues NB bestellt habe, muss ich bzgl. Acourate Uli wieder mal belästigen....

Sad
Zitieren

#44
xnishd schrieb:Ich meine mal gelesen zu haben, dass maximal 40ms erträglich sind.
Also ich finde mehr wie 20 ms fallen schon (vorallem wenn man darauf achtet) negativ auf bei der Lippensynchronität.
Deshalb nutze ich für Filme den im Jiver vorhanden Convolver da das Bild gleich mitverzögert wird...
Zitieren

#45
eltipo schrieb:Da ich mir ein neues NB bestellt habe, muss ich bzgl. Acourate Uli wieder mal belästigen....

Sad

Das ist doch Kacke....was ist wenn ihm was passiert....dann stirbt die Programmlizenz mit Ableben des Rechners.

Gruß
La vida es no ponyhof :bye:
Zitieren

#46
xnishd schrieb:Ich meine mal gelesen zu haben, dass maximal 40ms erträglich sind.
Mit einer ordentlichen Anzahl Partitionen und wenig Latenz bei der restlichen Verarbeitung des Signals, sollte das kein Problem sein.
Da reicht ein Raspi aber nicht mehr...

Edit: Hups - ist ja garnicht der Raspi-Thread. Also Korrektur:
"da reicht dann keine schwachbrüstige Hardware mehr" Wink
Erträglich sind tatsächlich eher 20ms.
Und die Latenz ist der Technik, die hinter dem Convolver steht, innewohnend. Man kann in den FAQ von Jriver nachlesen, das die Taps, Abtastrate und Latenz in einem direktem Zusammenhang stehen. Also bleibt es bei >>100ms.
Zitieren

#47
loki schrieb:Man kann in den FAQ von Jriver nachlesen, das die Taps, Abtastrate und Latenz in einem direktem Zusammenhang stehen. Also bleibt es bei >>100ms.
Noch besser einfach mal Rephase dowloaden und rumspielen.
unten rechts sieht man nach der berechnung die Latenz des Filters
Zitieren

#48
loki schrieb:Erträglich sind tatsächlich eher 20ms.
Und die Latenz ist der Technik, die hinter dem Convolver steht, innewohnend. Man kann in den FAQ von Jriver nachlesen, das die Taps, Abtastrate und Latenz in einem direktem Zusammenhang stehen. Also bleibt es bei >>100ms.


Im Convolver-Plugin (ConvolverVST, WMP...) und in Brutefir kann man zusätzlich "Partitionen" einstellen, mit denen man die Latenz senken kann. Das kostet dann nur mehr Rechnerressourcen.
http://www.ludd.luth.se/~torger/brutefir...ruteconv_3

Hierbei wird die Latenz definitiv gesenkt. Ich kenne JRiver nicht und konnte im Screenshot auch keine Einstellung dazu finden.
Mit meinen 65k-Tap langen Filtern habe ich ohne Partitionen eine Latenz von ca 1.5s. Mit 16 Patitionen komme ich auf 0.093s.
Mit 128 theoretisch auf 0.012s.

Da fühlen sich die 20ms schon fast greifbar an Wink
Form follows function...
Zitieren

#49
Hui
wenn das stimmt sollte ich mich doch mal anfangen damit zu beschäftigen. Also BruteFir und partitionen.
ist das nur Console oder gibt es auch irgendwie eine Grafische oberfläche dazu?
Zitieren

#50
Brutefir wäre Linux und Console only.

Das Convolver-Plugin für Windows hat eine grafische Oberfläche.
http://convolver.sourceforge.net/vst.html (Seite bei mir grad down)

Das Plugin gibt es in 3 Varianten:
- VST
Kann in VST-Kompatiblen Programmen verwendet weden. Ich benutze unter Windows meist den VSTHost (http://www.hermannseib.com/vsthost.htm).
- WMP
Plugin für Windows Media Player
- DirectX
Das Gleiche als Direct-X Audio Plugin

Das blöde am VST ist, dass hier die Partitions gedeckelt sind und man maximal 16 einstellen kann. Die beiden anderen Varianten haben eine freie Eingabe an der Stelle.

Ich vesuche grad das VST zu überreden mehr Partitionen zu schlucken. Mein Versuch den Quellcode von Sourceforge selbst anzupassen und eine eigene Version zu erstellen scheitert im Moment daran, dass Steinberg (Hersteller von VST) die alte verwendete "VST-Schnittstelle" nicht mehr anbietet.

Ein eckliger "hack" über die Windows-Registry scheint auch noch eine Option. Die habe ich aber noch nicht überprüft. Bei mir im Convolver stehen jetzt die 128 Partitionen, ob er das wirklich macht, weiss ich noch nicht.
Form follows function...
Zitieren

#51
Man muss hier zwei Dinge unterscheiden. zum einen gibt es die vom Filter verursachte Latenz. Diese lässt sich auch nicht reduzieren sondern ist bei linearphasigen Filtern immer vorhanden. Wenn einem diese Latenz zu lang ist muss man auf minimalphasige oder gemischtphasige Filter zurückgreifen.

Zum anderen gibt es eine Latenz die auf die Implementierung der Faltung zurückzuführen ist. Wenn die Faltung im Zeitbereich durchgeführt wird, ist diese Latenz nicht vorhanden, allerdings ist das bei langen Filtern sehr rechenintensiv.
Um Recourcen zu sparen kann man die Faltung auch im Frequenzbereich durchführen. Hierfür muss das ankommende Signal in Blöcken verarbeitet werden. Die Zeit bis ein Block aufgefüllt ist, kommt auf die oben genannte Filterlatenz oben drauf. Tendenziell reduziert sich der Rechenaufwand wenn die Blocklänge vergrößert wird, allerdings stimmt das nur bis zu einer gewissen oberen Grenze. Wo genau diese Grenze liegt ist abhängig vom konkreten System.

Gruß

waterburn
Zitieren

#52
Moin Waterburn,

du scheinst ja die Verfahren dahinter besser zu verstehen.

Was heißt das denn übersetzt für das konkrete Hochsetzen der Anzahl der Partitionen im Faltungsprogramm und der damit eingehenden niedrigeren Latenz?

Deine Aussage klingt für mich so, als würde es irgendwo ein hartes Limit geben, das man nicht unterbieten kann. (Filterlatenz)
Ich habe es so verstanden, dass die Partitionen eben diese Latenz verringern.

Ich muss mal so blöd fragen, da die Convolution für mich nur eine Blackbox ist und ich hier auch keinen in die falsche Richtung schicken will.
Form follows function...
Zitieren

#53
Das habe ich bei Jriver gefunden und das ist die Latenz, die sich nicht verringern läßt:
The delay introduced by a convolution filter can be calculated using the following formula: (Taps / 2) / Sampling Rate (expressed in seconds). So a 22000 tap filter sampled at 44100Hz would introduce about 1/4 of a second of delay, which is significant.
Und in einem anderem Threat habe ich über Acourate Convolver gelesen ( von Uli), wie man die Latenz auf ca. 10ms verringert, indem man die Taps auf 1024 reduziert. Dadurch wird aber auch die Auflösung kleiner, was bei tiefen Frequenzen ein Problem sein kann.

Dazu kommt noch die eigentliche Berechnung des neuen Musikstreams, die Faltung. Wenn ich es recht verstanden habe, sind das im obigen Beispiel so einige hundert Millionen!
Zitieren

#54
Hallo zusammen,

xnishd schrieb:Deine Aussage klingt für mich so, als würde es irgendwo ein hartes Limit geben, das man nicht unterbieten kann. (Filterlatenz)
Ich habe es so verstanden, dass die Partitionen eben diese Latenz verringern.

Das verstehst du genau richtig. Ein linearphsiges Filter hat immer eine Latenz die der halben Ordnung entspricht. Die Ordnung eines linearphasigen Filters ist die Anzahl der Koeffizienten +1.

Die Erklärung dafür kann ich nur grob skizzieren, da ich sonst genauer nachschlagen müsste. Ein linearphasiges Filter lässt sich mathematisch in eine Verzögerung und ein Filter mit der Phase 0 zerlegen.
Ein Filter mit der Phase 0 für alle Frequenzen enthält nur Kosinusanteile. Das bedeutet, dass die Impulsantwort eines solchen Filters symmetrisch um den Nullpunkt liegt.

Ein solches Filter ist aber nicht kausal, da Filterkoeffizienten im negativen Zeitbereich liegen. Hinzu kommt, dass die Impulsantwort prinzipiell zeitlich unendlich ausgedehnt ist.

Beim Filterentwurf bedient man sich nun des Tricks, dass die eigentlich unendlich ausgedehnte Impulsantwort abgeschnitten wird und durch eine Verzögerung vollständig in den positiven Zeitbereich verschoben wird.

Wie lang das resultierende Filter wird hängt von der gewünschten Frequenzauflösung ab. Die notwendige Verzögerung ergibt sich dann aus der Anzahl der im negativen Zeitbereich vorhandenen Koeffizienten.

Wenn man diese Latenz verringern will, ist die einzige Möglichkeit die Frequenzauflösung zu verringern. Das hat zur Folge, dass die tiefe Frequenzen nur noch schlechter korrigiert werden können.
Abhilfe kann hier sein die tiefen und mittleren Frequenzen mit minimalphasigen Filtern zu entzerren und nur im Mittelton und Hochton liniarphasige Filter zu verwenden.

So, ich hoffe das war einigermaßen verständlich und ich habe keine groben Fehler gemacht. Es gibt neben den oben skizzierten noch weitere Formen linearphasiger Filter (hier gilt aber prinzipiell das gleiche für die Verzögerung). Um die anderen Formen herzuleiten müsste ich die Mathematik aber nochmal genauer nachschlagen. Der Stoff ist nicht ganz trivial (Man lernt das erst gegen Ende eines Bachelor Studiums und versteht es wohl erst so richtig im Masterstudium)

Zu der Latenz durch die segmentierte Faltung (Partitionen) schreibe ich heute Abend nochmal etwas.

Gruß

waterburn
Zitieren

#55
Zwischenstand:

Ich habe nach der Anleitung von hier

The Alchemist schrieb:Hast Du diese Seite gefunden? http://www.horus.com/~hias/cirrus-driver.html

Gruß

Ich hab die Karte dann mal wieder rausgeholt....Big Grin

soweit erstmal die Karte anscheinend am laufen
   
   

leider habe ich es noch nicht geschafft, die Karte als Standard festzulegen.Ich wähle das zwar an aber nach einem Neustart ist wieder der Onboard chipsatz aktiv.
Gruss
Harry
Zitieren

#56
Hallo,

zum Linux Thema kann ich dir leider nicht weiterhelfen. Da hab ich mich auch schon vergeblich dran versucht. Allerdings muss ich auch zugeben, dass es mir bisher an Beharrlichkeit gefehlt hat. Ich hoffe beim nächsten Versuch halte ich durch Wink

Ich hatte ja versprochen noch etwas zur segmentierten Faltung zu schreiben.

Programme wie BruteFIR bedienen sich der sogenannten schnellen Faltung Wikipedia

Bei dieser wird die Faltung nicht im Zeitbereich durchgeführt, sondern als Multiplikation im Frequenzbereich.

Das bei wikipedia genannte overlap verfahren wird hier gleich zwei mal angewendet. Zum einen wird das Musiksignal in Segmenten verarbeitet und zum anderen wird die Filterimpulsantwort in Segmenten verarbeitet. Diese Segmente müssen nicht notwendigerweise gleich lang sein. Der Grund für die Segmentierung des Filters ist, dass moderne Prozessoren allerlei Hardwarebeschleunigung an Board haben um FFTs effizient berechnen zu können, allerdings sind diese Beschleunigungsverfahren nicht unbedingt für Filter mit 65000 Taps ausgelegt sondern eher auf kleinere Filterlängen optimiert.

Gruß

waterburn
Zitieren

#57
Erstmal schon sehr gut, dass die Karte läuft, bzw erkannt wird. Die Festlegung als Standard ist ist nicht notwendig, man kann sie unter Linux einfach als hw:1 ansprechen, dann bleibt die Onbardkarte hw:0

Ich bin schon am Falten; seit ca. einer halben Stunde läuft es digital hinein und analog heraus auf einem Pi1 mit ca. 45% Prozessorlast und 16384,4 Filterlänge also 65536 Taps.

Hast Du schon die UseScripts (oder so ähnlich) enpackt und die Ein/Ausgänge aktiviert?

Gruß


Angehängte Dateien Thumbnail(s)
   
La vida es no ponyhof :bye:
Zitieren

#58
ich habe gerade mal schnell vlc installiert und auf jedenfall kommt schonmal Musik über SPDIF-out raus.
Ich habe 2 Scripte ausgeführt einmal SPDIF-Playback und SPDIF-Record.
Allerdings nur doppelklick und dann auf ausführen.
Der grösste Felsbrocken scheint aber Brutefir zu werden.
Gruss
Harry
Zitieren

#59
Vlc über Brutefir laufen lassen ist etwas schwierig. Was einfach ist, ist Brutefir mit Digital Ein/Aus.

Ich würd erstmal die Ein/Ausgänge testen (sollte aber auch so funktionieren)

Digitalen Zuspieler anflanschen und ein Terminal öffnen, dort gibt man für 48kHz
Code:
arecord -f dat -D hw:sndrpiwsp | aplay -D hw:sndrpiwsp
ein und für 44.1
Code:
arecord -f cd -D hw:sndrpiwsp | aplay -D hw:sndrpiwsp
mit der Tastenkombinatio STRG und C kann man den Test beenden.

Aufpassen: Die meisten PC Karten geben erstmal mit 48kHz.
aus.

Ich würd dann mal Samba installieren
Code:
sudo apt-get -y install samba samba-common-bin
Die Beispiel Konfiguration löschen (sofern vorhanden)
Code:
sudo rm /etc/samba/smb.conf
und eine neue anlegen
Code:
sudo nano /etc/samba/smb.conf
mit folgendem Inhalt
Code:
####################samba.conf####################
#======================= Global Settings =======================

[global]

   workgroup = WORKGROUP
   server string = Audio Player
   dns proxy = no
   log level = 0
   syslog = 0

   security = share
   guest account = root
   map to guest = bad user
   load printers = no
   domain master = no
   local master = no
   preferred master = no
  

#======================= Share Definitions =======================

   directory mask = 0775
   create mask = 0775
  
#pi
[pi]
   comment = pi
   path = /home/pi
   read only = no
   public = yes
   follow symlinks = yes
   wide links = yes
(Speichern mit STRG+X dann mit Y bestätigen) Was Dir nach einem Neustart Zugriff auf das Homeverzeichnis von Pi über das Windowsnetzwerk erlaubt.

Eine Beispiel-Konfiguration und Beispiel-Filter schnitz ich dir derweil zurecht Big Grin
La vida es no ponyhof :bye:
Zitieren

#60
The Alchemist schrieb:Eine Beispiel-Konfiguration und Beispiel-Filter schnitz ich dir derweil zurecht Big Grin

Das ist wirklich sehr Nett von dir.:prost:
Ich habe vorhin noch Brutefir installieren "lassen", über die Paketverwaltung von Linux.Aber wenn ich mir deine Bilder anschaue scheint es evt. sinniger zu sein dies manuell zumachen, da man dann die Verzeichnisse vorgeben kann wo das Brutefir liegt.Ich finde zurzeit nichteinmal die config datei wieder.Sad
Ich hatte geute auch leider nicht allzuviel Zeit was zumachen, da meine beiden Frauen krank sind und ich die ein bischen Plegen muss.
Ohne Hilfe würde das hier wahrscheinlich etliche Wochen dauern.
Aber wo doch so langsam schon einiges funktioniert und bei dir ja schon komplett, freue ich mir schon wie ein kleines KindBig Grin
Gruss
Harry
Zitieren



Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Welchen Multifunktionaltester kaufen? wgh52 34 10.048 09.11.2020, 20:39
Letzter Beitrag: chinakohl
  DAC - Welchen? RdS 15 4.910 29.03.2017, 18:54
Letzter Beitrag: TriplePower
  DSP...aber welchen? nic-enaik 27 7.397 12.05.2014, 17:22
Letzter Beitrag: loki
  36V DC und 4,5A -> welchen Trafo brauche ich? EMP 12 2.937 02.05.2014, 11:15
Letzter Beitrag: 1swift
  Powercon-Stecker.....welchen? eltipo 10 2.582 25.10.2013, 21:10
Letzter Beitrag: eltipo
  Welchen Transistor für linearen Spannungsregler? waterburn 4 5.277 21.04.2011, 20:35
Letzter Beitrag: waterburn

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

Deutsche Übersetzung: MyBB.de, Powered by MyBB, © 2002-2025 Melroy van den Berg.