diy-hifi-forum.eu
Asus Xonar D2 - Druckversion

+- diy-hifi-forum.eu (https://diy-hifi-forum.eu)
+-- Forum: Archiv (https://diy-hifi-forum.eu/forumdisplay.php?fid=198)
+--- Forum: Elektronik (https://diy-hifi-forum.eu/forumdisplay.php?fid=8)
+---- Forum: Allgemeine Themen (https://diy-hifi-forum.eu/forumdisplay.php?fid=87)
+---- Thema: Asus Xonar D2 (/showthread.php?tid=2257)

Seiten: 1 2 3 4 5 6 7


Asus Xonar D2 - slacky - 14.11.2011

Morgen Manollo,

"schön" zu hören, dass ich nicht der einzige mit diesen Problemen bin.

Im derzeitigen Zustand hält brutefir bei mir nun etwa 30 Minuten bevor ich neu starten muss. Entweder gehe ich jetzt wieder analog rein oder ich bekomme das doch noch irgendwie in den Griff. Ich finds halt sehr störend wenn ich beispielsweise während einem Film 3-4 mal pausieren und neu starten müsste Sad
Da ich mir die Xonar allerdings vor allem auch gekauft habe um eine DA + AD Wandlung zu sparen bleibe ich vorerst mal stur...

Vielleicht lässt sich ja ein Skript basteln, dass automatisch neu startet. Denn alle 30min für 1s eine Pause.. na da könnt ich noch mit leben. Da brutefir eine C-API hat müsste da doch irgendwas machbar sein. Für mich ist das Thema jedenfalls noch nicht vom Tisch Wink

Wieso gehst du zuerst in den AVR? Um mehrere Quellen komfortabel bedienen zu können?

Zu deiner Frage der Rechenleistung: das hängt wohl von deinen Filterlängen und dem gewünschten I/O-Delay ab. Da du mit brutal vielen Partitionen arbeitest würde ich schätzen du willst möglichst keinen delay. Beides gleichzeitig wird aber kaum möglich sein.
Für einen hohen Durchsatz (viele lange Filter) wird empfohlen maximal 16 Partitionen zu benutzen. Bei 44,1kHz wären da z.B. Filter der Länge ~20000 (z.B. 1024,24-> 46ms) ausreichend genau. Ich behaupte jetzt mal sowas schafft auch noch jeder single core Atom. Wenn man die Partitionsgrößen immer weiter verkleinert bekommt man irgendwann jeden PC in die Knie da ein immer größerer overhead für das ganze drumrum ensteht.
Durch das verkleinern in viele kleine Pakete hat man halt das Problem, dass jedesmal Ein- und Ausschwingvorgänge auftreten, die dann jeweils mit den Ein- und Ausschwingern des nächsten Pakets korrigiert werden müssen. Also sehr viel arbeit für praktisch keinen Inhalt.

Als Anhaltspunkt bei etwas besseren CPUs:
Bei 64 Bit, 96kHz, Filterlängen um 2x48000, 6x~2000 und 512,128 Paritionen ist mein G620T (kastrierter i3 wenn man so will) schon bei knapp über 50%. Ich denke nicht, dass sowas lange stabil läuft.


Asus Xonar D2 - eltipo - 14.11.2011

Ich frag mal blöd dazwischen....:

Hab mit Manu schon drüber gesprochen, kann aber das Delay nicht in ms zusammenfassen:

Bekomme ich das Delay sinnvoll so kurz, dass ich meine Fronts auch dauerhaft ins Heimkino einbinden kann, ohne gleich ein nicht mehr korrigierbares delay zu haben?

Zur Not wechsel ich halt den Receiver, Manu meinte, das würde knapp werden.....


Asus Xonar D2 - manollo139 - 14.11.2011

Ich habe momentan nen Dualcore E6550 oder so.
2x2,6Ghz und 2GB Ram.

Dieser läuft im Schnitt bei 90%, wenn ich nur 3Wege bei 44,1k und 64bit und Partitionsgröße von 256/256 fahre. Das ganze ist dann Stabil, wenn ich analog in den Faltrechner gehe.

Der Grund für den AVR ist 1. Lautstärkeregelung, 2. Heimkino, 3. habe ich dann die digitale problematik mit den abstürzen nicht mehr, was ganz praktisch ist, da mein Faltrechner quasi ne Blackbox ist. Zugriff nur über Teamviewer vom Handy oder PC. Brutefir startet direkt beim hochfahren.

Damit habe ich das Delay soweit im Griff, das ich mit minimalphasigen Filtern im Heimkino klar komme. Denn da komme ich noch mit der korrektur der restlichen Surroundkanäle hin, da diese nicht entzerrt werden. Auch das generelle Delay bekomme ich mit LipSync in den Griff. Allerdings würde ich doch irgendwann gerne auf 128/512 und dann mit 48-96k.

Bezüglich der Brutefir abstürze überlege ich momentan auch schon, wie ich das abfragen kann, ob brutefir abgestürzt ist.
Für den Fall das es momentan doch mal abstürzt wäre das ganz praktisch. Denn momentan starte ich den Faltrechner einfach neu Big Grin Wenn ich nicht gerade den pc an habe.

Aber das kommt wirklich maximal 1mal im Monat vor.


Asus Xonar D2 - eltipo - 14.11.2011

Manu, du müsstest auf meinem Falter Teamviewer noch innen Autostart packen.....Jedes mal die Tastenuhr anstöpseln nervt mich schon nur bei der Vorstellung*g

Big Grin


Asus Xonar D2 - manollo139 - 14.11.2011

Ohh, das hab ich wohl irgendwie vergessen Big Grin
Kann ich machen, kein problem Big Grin


Asus Xonar D2 - slacky - 14.11.2011

Hat denn z.B. eine Delta 1010LT ähnliche Probleme in Verbindung mit dem SPDIF Eingang?
Oder hat sich schonmal wer den jconvolver angeschaut?


Asus Xonar D2 - manollo139 - 14.11.2011

Ich wollte den JConvolver schonmal getestet haben, allerdings habe ich keinen funktionierenden aktuellen downloadlink gefunden.
Wenn du da etwas hast, kann ich das irgendwann mal testen, wenn ich dazu komme.


Asus Xonar D2 - The Alchemist - 14.11.2011

Moinsen die Herren,

das Problem ist auch bei mir reprodzierbar.

Ich hab die Filter von Slacky und die .brutefir_config (die ich ein wenig umgestrickt habe) und gehe über Coax digital von einem Sat-Receiver in die Asus hinein.

Nach wenigen Minuten ist Schluss.

Als ich im Januar den digitalen Eingang getestet habe bin ich über TOSlink in die Karte gegangen, allerdings bei 44,1 kHz.

Nun stellt sich mir natürlich die Frage, obes an der Samplerate liegt oder evtl, sogar am Cinch Kabel , das ich verwende.

Ich hab gestern Abend noch festgestell, dass wir auch noch einen Sat Receiver mit Optischem Ausgang haben, den werd ich heute Abend testen.

Gruß

Elmar


Asus Xonar D2 - eltipo - 14.11.2011

Eine Delta könnte ich zum Testen zur Verfügung stellen... wer will? *g


Asus Xonar D2 - manollo139 - 14.11.2011

Im gespräch mit Uli Brüggemann auf der Messe hatte ich die Problematik mit den Brutefir abstürzen auch erwähnt, er sagte, dass es sein kann, das man in einer Treiberkonfigurationsdatei einige Werte anpassen muss, allerdings habe ich davon jetzt nicht wirklich den Plan. Also habe ich das erstmal aufgeschoben, da ich Analog wie gesagt keine Probleme habe.


Asus Xonar D2 - slacky - 14.11.2011

Mein Cinch-Kabel zur Übertragung habe ich auch schon getauscht, hat aber nichts geändert. Wirkliche Unterschiede zu Toslink dürfte es nur bei schlecht geschirmten Kabeln geben und bei gleichzeitigem "Elektrosmog".

Bei der Übertragung geht auch denke ich nichts schief. Hätte man Problemen bei der Taktrückgewinnung über DPSK würde es ja nicht immer nach etwa der gleichen Zeit zum Absturz kommen.
Trotzdem passiert das ganze schneller bei höherer samplerate.

Ich denke da ist was mit dem buffer nicht in Ordnung. Gemeldet wird ja immer "ALSA I/O: overflow(read on xyz)" ganz als ob die Daten nicht schnell genug aus dem Eingangsspeicher abgeholt werden würden.

Wer daran schuld ist, ALSA, brutefir oder die XONAR, wäre halt sehr wichtig zu wissen. Deshalb ja auch die Frage ob es mit anderen Soundkarten auch passiert.

Generell verstehe ich nicht so ganz warum beim overflow nicht einfach samples rausgeschmissen werden und beim output underrun nicht einfach mit 0en aufgefüllt wird. Das wären Wiedergabefehler die man vielleicht nicht einmal bemerken würde


Asus Xonar D2 - The Alchemist - 14.11.2011

Ich hab noch einen Versuch gemacht.

Unser Kumpel Jack hat ausgeholfen. Im Prinzip die gleiche Lösung, die ich schon auf ein paar Seiten vorher gemacht habe.

So sieht die .brutefir_config für Jack aus (mit Slackys Filtern, ich habe die Entzerrung wieder eingearbeitet, wenn Du die Datei so übernimmst gelten die gleichen Warnhinweise wie in dem Post an Julian)

Code:
## GENERAL SETTINGS ##

float_bits: 64;            # internal floating point precision
sampling_rate: 48000;        # sampling rate in Hz of audio interfaces
filter_length: 1024,8;        # length of filters
overflow_warnings: true;    # echo warnings to stderr if overflow occurs
show_progress: true;        # echo filtering progress to stderr
max_dither_table_size: 0;    # maximum size in bytes of precalculated dither
allow_poll_mode: false;        # allow use of input poll mode
modules_path: ".";        # extra path where to find BruteFIR modules
monitor_rate: true;        # monitor sample rate
powersave: false;        # pause filtering when input is zero
lock_memory: false;        # try to lock memory if realtime prio is set


## Logic ##

logic: "cli" { port: 3000; };

coeff "corrL" { filename: "drc_20k_links.txt";format: "text"; attenuation: 0.0;};
coeff "corrR" { filename: "drc_20k_rechts.txt";format: "text"; attenuation: 0.0;};
coeff "tt" { filename: "tt_48.txt";format: "text"; };
coeff "mt" { filename: "mt_48.txt";format: "text"; };
coeff "ht" { filename: "ht_48.txt";format: "text"; };



## Input/Output ##

input "left", "right" {
        device: "jack" { ports: "system:capture_1","system:capture_2"; };
        sample: "AUTO";
        channels: 2/0,1;
    delay: 0,0;
    
};



output "tt_left", "tt_right", "mt_left", "mt_right", "ht_left", "ht_right" {
        device: "jack" { ports: "system:playback_1","system:playback_2","system:playback_3","system:playback_4","system:playback_5","system:playback_6"; };
        sample: "AUTO";
        channels: 6;
        delay: 0,0,0,0,0,0;
    };



## FILTER ##

##Entzerrung##
filter "drc_left" {
    from_inputs: "left";
    to_filters: "tt_left", "mt_left", "ht_left";
    coeff: "corrL";
};



filter "drc_right" {
    from_inputs: "right";
    to_filters: "tt_right", "mt_right", "ht_right";
    coeff: "corrR";
};

##Tieftöner##

filter "tt_left" {
        from_filters: "drc_left";
        to_outputs: "tt_left";
        coeff: "tt";
    };

filter "tt_right" {
        from_filters: "drc_right";
        to_outputs: "tt_right";
        coeff: "tt";
    };

##Mitteltöner##

filter "mt_right" {
        from_filters: "drc_right";
        to_outputs: "mt_right";
        coeff: "mt";
    };



filter "mt_left" {
        from_filters: "drc_left";
        to_outputs: "mt_left";
        coeff: "mt";
    };


##Hochtöner##


filter "ht_right" {
        from_filters: "drc_right";
        to_outputs: "ht_right";
        coeff: "ht";
    };



filter "ht_left" {
        from_filters: "drc_left";
        to_outputs: "ht_left";
        coeff: "ht";
    };


Jack läßt sich wie folgt starten, wenn man auf qjackctl verzichten möchte:

Code:
jackd -dalsa -r48000 -p1024 -n4 -D -Chw:0,1 -Phw:0,0 -i2 -o6

Der Nachteil bei Jack ist, dass er nur mit 32bit arbeitet (wers hört....:o)

Bei mir lief das Ganze über 80 Minuten, mit 9 xruns, einen davon habe ich als Knackser wahrgenommen.

Das Experiment wurde von mir beendet,kein Absturz.

Als Betriebssystem kam "meine LiveCD" installiert auf einem USB Stick zum Einsatz, also Ubuntu 10.04.

Und nochn Bild
[Bild: 201111141907361440x900s.png]


Vielleicht gibt es ja noch eine andere Lösung, von mir aber heute nicht mehr Big Grin

Gruß

Elmar


Asus Xonar D2 - ferryman - 14.11.2011

Hallo zusammen,

die angesprochene CD habe ich zufällig soeben hier hochgeladen.

Viele Grüße
Julian


Asus Xonar D2 - slacky - 14.11.2011

EDIT:

Herzlichen Dank Elmar! Was soll ich sagen... es geht! 96kHz mit 256,256 Partitionen über SPDIF

Also alles was ich wollte Big Grin Von alleine wäre ich nie auf die Idee gekommen mir jetzt noch jackd aufzuladen.. da eine Fehlerquelle mehr und so.
Die ab und zu (einmal pro Minute) auftretenden xruns höre ich nicht und dabei waren genau die wohl für die Abbrüche verantwortlich.


Das unten in den quotes lag nur an einer neueren Version von jackd in Ubuntu 11.04. Wohl nicht umsonst ist die alte auch noch in der repository. So ich bin happy


Zitat:Also wird jack nur dazu missbraucht die xruns abzufangen? Wenns klappt gerne Rolleyes

Ich habe jack bereits am laufen, der Server steht und ich habe dieses Verbingsungsfensterchen offen. Wenn ich jetzt brutefir mit der entsprechenden config starte müsste alles gehen und auch die Anwendung im Verbindungsfenster erscheinen oder fehlt mir da noch ein schritt?

Weil derzeit quittiert mir brutefir mit deiner config folgendes:

JACK I/O: JACK reported an error: Cannot connect to server socket err = No such file or directory
JACK I/O: JACK reported an error: Cannot connect to server socket
JACK I/O: JACK reported an error: jack server is not running or cannot be started
JACK I/O: Could not become JACK client (status: 0x11). Error message(s):
Overall operation failed.
Unable to connect to the JACK server. Perhaps it is not running? BruteFIR requires that a JACK server is started in advance.
Error at line 31 for input device using module "jack".



Asus Xonar D2 - The Alchemist - 14.11.2011

Edit: Schön zu hören, dass es läuft!

Jack muss mit den Parametern gestartet werden die ich angegeben habe. Zur Zeit sieht es so aus, als ob JackD nicht läuft.

Am einfachsten ist es wenn Du die GUI startest also qjackctl.

Du siehst im Normalfall das kleine rechteckige Fenster, das bei mir im Bild mit "Jack Audio Connection Kit" beschrieben ist.

Du klickst auf Stopp und danach auf Konfiguration.

Dann sollte sich das Fenster öffnen was den Namen trägt "Einstellungen Jack Audio Connection Kit" aus meinem Bild übernimmst Du die Einstellungen.

Ein Klick auf OK schließt das Fenster wieder und Du kannst Jack starten in dem Du auf "Start" im "Jack Audio Connection KIt" Fenster klickst.

In dem "Display" ist dann "Läuft" zu lesen.

Dann in der Konsole Brutefir starten. Im Alsamixer und bei PULSEAUDIO sollten die Einstellungen gemacht werden wie auf dem Bild.
Edit: Das war Post #40

Wenn das alles nicht hilft wärs das Einfachste Du lädst eben das ISO File herunter.....:o und machst alles was beschrieben hab nochmal..........

Gruß

Elmar


Asus Xonar D2 - The Alchemist - 15.11.2011

manollo139 schrieb:. Brutefir startet direkt beim hochfahren.

Könntest Du mal kurz anreissen wie Du das machst? Alle meine Versuche dazu sind außer bei TinyCore fehlgeschlagen...

Gruß

Elmar


Asus Xonar D2 - Sleepwalker - 15.11.2011

Das automatische Neustarten von Brutefir nach nem Absturz ist einfach: Brutefir in einer Schleife (do ... while) in einem Script starten. So kann man auch den Betrieb mit mehrern Configs (wegen Samplerate) realisieren. Erkennt Brutefir eine andere Samperate bricht es ab und startet mit einer anderen, solange bis es die richtige ist. So könnte man auch per FB zwischen analog/digital umschalten.
Abstürze hab ich aber gar keine. Evtl. weil bei mir Memory-Lock auf "True" ist, wegen der EQs. Ausserdem teile ich linken und rechten Kanal manuell auf die CPUs (process 0...1) auf.


Asus Xonar D2 - slacky - 16.11.2011

Sleepwalker schrieb:Das automatische Neustarten von Brutefir nach nem Absturz ist einfach: Brutefir in einer Schleife (do ... while) in einem Script starten.

Oh das ist gut zu wissen. Werde ich dann wohl mit jackd genau so machen. Dann muss ich nicht jedes mal neu starten wenn am Digitaleingang nichts mehr anliegt. Oder man kann den watchdog irgendwie umgehen.


Asus Xonar D2 - Sleepwalker - 16.11.2011

slacky schrieb:Oder man kann den watchdog irgendwie umgehen.

Ohne weitere Maßnahmen ist mir das nichts bekannt. Da der Quellcode von Brutefir zu bekommen ist, könnte man da natürlich noch was basteln. Zumal die meiste Zeit beim Brutefir-Start für das erstellen der FFTW-Werte drauf zu gehen scheint. Da wäre es nicht schlecht, wenn man diese Daten einmalig auf seinem System erstellen lassen könnte und danach kürzer starten.
Noch ein wichtiger Tipp: Wenn du das im Script aufrufst, bekommst du es nicht mehr ohne weiters "geschlossen". Ein STRG-C startet dann immer wieder Brutefir neu, was in einer "Endlosschleife" endet wenn in der Config ein Fehler ist. Da hilft dann STRG-S. Das stoppt den Start von Brutefir und man kann die Config korrigieren Wink


Asus Xonar D2 - eltipo - 16.11.2011

eltipo schrieb:Eine Delta könnte ich zum Testen zur Verfügung stellen... wer will? *g


Puh. also, in den letzten rund 3 Stunden hamwa ( ich nehme mich aus, ich hab nur umgestöpselt) die 1010 nicht zum kooperieren bekommen...

Das wird ein Spass.....Sad