Mein BruteFIR-PC mit M-Audio Delta 1010LT

ferryman
Aktiver Hörer
Beiträge: 53
Registriert: 07.05.2010, 22:44

Beitrag von ferryman »

Hallo Alc,

Heute morgen hab ich noch kurz vor der Fahrt auf Arbeit meinen Hauptrechner getestet - und siehe da, es geht.

Zwar nicht nach 90s, eher ein paar Minuten, aber es tut.

Jack läuft, BruteFIR läuft, Aqualung läuft - ich weiß nicht ob Soundausgabe funktioniert, speziell die Delta1010LT, aber dazu hat mir die Zeit nicht gereicht.

Mein angedachter ATOM-Faltrechner hat irgendein Problem, er kann zwar von der CD booten, hat aber danach Probleme auf das (nagelneue) DVD-Laufwerk zuzugreifen. Hab ein Neues gebraucht, da das ITX-Board kein IDE hat.

Ich werde dann mal aus der CD entweder einen bootfähigen USB-Stick machen, oder auf dem Hauptrechner das System auf einen Stick installieren.

Danke schonmal. Ich komme leider erst Freitag Nacht heim, um weiter zu probieren. Hier kann ich nur alte Büromöhren ausprobieren.

Viele Grüße,
Julian
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Hallo Julian
schön zu hören das es so etwas wie Erfolg gibt.

Es macht aber meiner Meinung keinen Sinn ein Iso zu verteilen, das Mucken hat.

Ich hab das System noch einmal mit DAO und verringerter Datenrate gebrannt. Die Cd ist unterwegs; auf den Vorteil Screenshots zu erstellen sollten wir nicht verzichten, das erleichtert die Fehlersuche ungemein.

Wenn Du auf deinem Hauptrechner einen bootfähigen Stick erstellst, tu Dir den Gefallen und klemm deine Produktivfestplatte ab; also nur den Stick als Speichermedium.

Du brauchst dir dann keine Gedanken um den Installationspfad von Grub zu machen....

Gruß
Elmar
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Nur mal so als Vorschau:

Das System läuft voll von Cd, Laufwerk mit Musik eingehängt und das Beispiel gestartet.

Erst Jack über den Starter

Dan Qjackcontrol (nur zur Kontrolle der Verbindungen)

Dann das Aqualung Brutefir Startskript:

Bild

Gruß
Elmar
ferryman
Aktiver Hörer
Beiträge: 53
Registriert: 07.05.2010, 22:44

Beitrag von ferryman »

Hallo zusammen,

Erfolgsmeldung! Alles läuft soweit, spätestens seit ich im Alsamixer auch die Kanäle 3-8 hochgedreht habe.

Das neue Image lässt noch auf sich warten, ich bin aber vollauf zufrieden. Auf nem Stick installiert bootet das System in 30s.

Leider vergisst Ubuntu immer die eingestellte Bildschirmauflösung. Aber das ist verschmerzbar.

Viele Dank für diese mehr als ausgezeichnete Unterstützung!

Julian
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Hallo Julian,

schön zu hören das es klappt. :cheers:

In deiner brutefir config hast Du ja bestimmt schon die Kanäle im Ausgabeteil angepasst, oder?

Was mir noch einfällt; der Bildschirmschoner sollte abgestellt werden, zumindest die animierten,die zwingen das System in die Knie...(auf meinem Resteverwerter.kommt es zu Xruns...)

Auf dem neuen Image ist auch Brutefir in der Verson 1.0k. Veränderung hab ich aber keine bemerkt.

Bevor Du Programme nachinstallierst mußt Du ein "sudo apt-get update" durchführen um die Quellen zu aktualisieren.

Gruß
Elmar
ferryman
Aktiver Hörer
Beiträge: 53
Registriert: 07.05.2010, 22:44

Beitrag von ferryman »

Hallo Alc,
In deiner brutefir config hast Du ja bestimmt schon die Kanäle im Ausgabeteil angepasst, oder?
Nö, passt doch alles?

Der Atom langweilt sich bei 4 Kanälen noch.

Viele Grüße,
Julian

PS: Wenn es einmal einen Xrun gab, hab ich die ganze Zeit, bis zum Neustart, Aussetzer im Musiksignal.
Bild
ferryman
Aktiver Hörer
Beiträge: 53
Registriert: 07.05.2010, 22:44

Beitrag von ferryman »

Edit: Hat sich erledigt. FLOAT_LE auf FLOAT64_LE umgeschrieben.


Hallo zusammen,

Ich habe jetzt die Brutefir Config für mich umgestrickt.

Code: Alles auswählen

float_bits: 32;             # internal floating point precision
sampling_rate: 44100;       # sampling rate in Hz of audio interfaces
filter_length: 4096,16;       # 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: false;        # monitor sample rate
convolver_config: "~/.brutefir_convolver"; # location of convolver config file

## COEFFS ##

coeff "HTL" {
         filename: "/home/hifi/filter/XO3L44.dbl";
	     format: "FLOAT_LE";     
	     attenuation: 0.0;  
};

coeff "HTR" {
         filename: "/home/hifi/filter/XO3R44.dbl";
	     format: "FLOAT_LE";     
	     attenuation: 0.0;   
};
	
coeff "MTL" {
         filename: "/home/hifi/filter/XO2L44.dbl";
	     format: "FLOAT_LE";    
	     attenuation: 0.0;   
};

coeff "MTR" {
         filename: "/home/hifi/filter/XO2R44.dbl";
	     format: "FLOAT_LE";     
	     attenuation: 0.0;   
};	
	
coeff "TTL" {
         filename: "/home/hifi/filter/XO1R44.dbl";
	     format: "FLOAT_LE";     
	     attenuation: 0.0;   
};

coeff "TTR" {
         filename: "/home/hifi/filter/XO1R44.dbl";
	     format: "FLOAT_LE";     
	     attenuation: 0.0;   
};


## INPUT OUTPUT ##

input "left-in", "right-in" {
        device: "jack" { ports: "aqualung:out_L", "aqualung:out_R"; };
        sample: "AUTO";
        channels: 2;
};

output "left-high", "right-high", "left-mid", "right-mid", "left-low", "right-low" {
        device: "jack" { ports: "system:playback_1","system:playback_2","system:playback_3","system:playback_4","system:playback_5","system:playback_6"; };
        sample: "AUTO";
        delay: 0,0,0,0,0,0;
        channels: 6;
};

## FILTER ##

filter "HTL-Filter" {
 from_inputs: "left-in";
 to_outputs: "left-high";
 coeff: "HTL";
};

filter "HTR-Filter" {
 from_inputs: "right-in";
 to_outputs: "right-high";
 coeff: "HTR";
};

filter "MTL-Filter" {
 from_inputs: "left-in";
 to_outputs: "left-mid";
 coeff: "MTL";
};

filter "MTR-Filter" {
 from_inputs: "right-in";
 to_outputs: "right-mid";
 coeff: "MTR";
};

filter "TTL-Filter" {
 from_inputs: "right-in";
 to_outputs: "left-low";
 coeff: "TTL";
 
};filter "TTR-Filter" {
 from_inputs: "right-in";
 to_outputs: "right-low";
 coeff: "MTL";
};
Scheinbar gibt es Probleme mit meinen Filterdateien (eben mit Acourate erzeugt, nur Crossover).

Die Console meldet (Aqualung und Jack vorher von Hand gestartet):

Code: Alles auswählen

hifi@convolver:~$ brutefir

BruteFIR v1.0f (August 2005)                                  (c) Anders Torger

Internal resolution is 32 bit floating point.
SSE capability detected -- optimisation enabled.
Creating 4 FFTW plans of size 8192...finished.
Loading 6 coefficient sets...NaN or Inf value among coefficients.
Failed to preprocess coefficients in file /home/hifi/filter/XO3L44.dbl.
Dieselbe Config lief zuvor mit Alc's Filtern.

Kann jemand was mit der Fehlermeldung anfangen?

Viele Grüße,
Julian

PS: Mit .pcm Dateien gehts nach wie vor.
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

format: "FLOAT64_LE"
anstelle "FLOAT_LE"

Als Format für die Filter sollte helfen. Jack arbeitet aber nur mit 32 bit. Was sehr interessant ist, ist die Fehlermeldung:
NaN or Inf value among coefficients
Eine ähnliche hatte Sheffield auch...

Vielleicht hat Brutefir irgendwelche Schwierigkeiten mit den 64 bit Files.....

Mit den Aussetzern:

Das ist der schwierige Teil. Du musst Jack anpassen. Ich würde zunächst die Perioden/Puffer auf 4 setzen. Evtl. müssen aber auch die Frames/Periode verändert werden. Hier hilft leider nur ausprobieren.

Jack muss dann über qjackctl gestartet werden.

Wenn Du die richtigen Einstellungen für dein System gefunden hast, kannst du den Jackstarter bearbeiten.

Gruß
Elmar
ferryman
Aktiver Hörer
Beiträge: 53
Registriert: 07.05.2010, 22:44

Beitrag von ferryman »

Hallo Elmar,

Die Aussetzer hab ich ja nur, wenn er mal Xruns hatte. Also nach Anpassen der Bildschirmauflösung etc.

Ich habe jetzt auch floating points mal testweise auf 64 gestellt. Er faltet munter 6 Kanäle vor sich hin.

Das Proggi zum auslesen der Prozessorlast sehe ich nur als kleines Bildchen in der Taskleiste, starten kann ich das Programm nicht; dann erscheint eine Fehlermeldung.

Ausserdem ist das nach jedem Neustart erforderliche Ändern der Bildschirmauflösung nervig.

Ich bin aber ob des jetzigen Standes schon sehr zufrieden.

Ich werde dann mal eine Config für analoges Eingangssignal stricken; vor allem für die Messerei.

Viele Grüße,
Julian
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

htop läßt sich nur über ein Terminal starten

Also LxTerminal öffnen und von Hand " htop " eingeben, oder in dem Terminal das die Fehlermeldung zeigt :mrgreen:

Mit der Bildschirmauflösung bin ich überfordert. Ich hab das auf zwei Desktops und einem Laptop probiert, immer wird die Auflösung beim Start direkt angepasst.
Ich hab jetzt allerdings auch das "neue Image" , was noch Unterwegs ist, auf dem Stick...

Gruß
Elmar

Edit: Selbst auf einem EEEPC 900A kommt sofort die richtige Auflösung von 1024x600...
uli.brueggemann
Aktiver Hersteller
Beiträge: 4663
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Filter-Dateien von Acourate mit der Endung .dbl enthalten double precision floating point - Daten (64 bit).
Sie werden seitens Brutefir richtig mit FLOAT64_LE verarbeitet. FLOAT_LE beschreibt 32 bit float-Werte. Demzufolge werden dann 64 bit-Daten nicht korrekt ausgelesen und unter Umständen als INF und NAN (not a number) interpretiert.
Das Filterformat hat wiederum nichts mit der internen Verarbeitung in Brutefir zu tun, welches dann wahlweise mit 32 oder 64 bits erfolgen kann.

Grüsse, Uli
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4663
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

ferryman hat geschrieben: Ausserdem ist das nach jedem Neustart erforderliche Ändern der Bildschirmauflösung nervig.
Vielleicht klappt es beim Booten mit dem vga= Kommando zu arbeiten, siehe z.B. hier

Gruss, Uli
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Sofern das System nur auf einem Rechner läuft könnte man versuchen die xorg.conf anzupassen.

Befindet sich unter: /etc/X11/xorg.conf


Unter Section "Screen" muss dann so etwas mit den richtigen Auflösungen eingetragen werden:

SubSection "Display"
Depth 24
Modes "1600x900@60" "1024x768@60"
EndSubSection


Steht hier dann was falsches, startet das System gar nicht mehr.

Am besten wäre es, wir wüßten etwas mehr über die verwendete Hardware.

Bei Sheffield tappen wir doch bei der Fehlersuche im Dunkeln. Liest man die Doku von Brutefir, stellt man fest, dass das Programm beim Betrieb mit 64Bit auf Optimierungen verzichtet, was natürlich nicht heißt, dass es nicht funktioniert.

Ich habe keine Ahnung wie groß die mit Acourate erstellten Filter letztendlich sind, ich würde aber um den Fehler einzugrenzen zunächst komplett auf 32Bit umstellen.

Stürtzt das System dann auch nach einiger Zeit ab, können wir die Filter ausschließen und ein Hardware defekt wird wahrscheinlicher.

Nochmal: Bei der Verwendung mit Jack macht das Arbeiten mit 64 Bit keinen Sinn, da Jack nur mit 32 Bit arbeitet.

Gruß

Elmar
Udor
Aktiver Hörer
Beiträge: 389
Registriert: 02.09.2010, 00:17

Beitrag von Udor »

Das Filterformat hat wiederum nichts mit der internen Verarbeitung in Brutefir zu tun, welches dann wahlweise mit 32 oder 64 bits erfolgen kann.
Hola das wusste ich bis dato noch nicht. Dachte immer das stünde im zusammenhang. Wieder was gelernt :cheers:

Wäre jetzt noch die Frage was Brutefir dann ausgibt bei interner 64bit verarbeitung von wegen Jack.
Wenn Alch recht hat dann wäre 64bit ja wirklich quak. Obwohl das System bei mir auch so wunder bar stabil läuft...

Die Probleme die Sheffield hat kann ich so auch nicht nachvollziehen. Imho sollte man aber auch erst mal für eine solide Hardwarebasis sorgen. Ansonsten ist eine Fehlersuche sehr schwierig.

Gruß Udo
Bild
Udor
Aktiver Hörer
Beiträge: 389
Registriert: 02.09.2010, 00:17

Beitrag von Udor »

Ich werde dann mal eine Config für analoges Eingangssignal stricken; vor allem für die Messerei.
Geht auch einfacher.
Hab dir mal eine Brutefir Config auf Basis deiner letzten hier geposteten Config gebastelt.
Sofern sich die pfade nicht verändert haben müsste das gehen.

Code: Alles auswählen

float_bits: 32;             # internal floating point precision
sampling_rate: 44100;       # sampling rate in Hz of audio interfaces
filter_length: 4096,16;       # 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: false;        # monitor sample rate
convolver_config: "~/.brutefir_convolver"; # location of convolver config file

##### COEFFS #####

## Mikro korrektur ##

coeff "mcoeff" {
	filename: "/home/udo/audiovero/brutefir/filter/miccal/mic_cal_invers.dbl";
	format: "FLOAT64_LE";




coeff "HTL" {
         filename: "/home/hifi/filter/XO3L44.dbl";
        format: "FLOAT64_LE";     
        attenuation: 0.0; 
};

coeff "HTR" {
         filename: "/home/hifi/filter/XO3R44.dbl";
        format: "FLOAT64_LE";     
        attenuation: 0.0;   
};
   
coeff "MTL" {
         filename: "/home/hifi/filter/XO2L44.dbl";
        format: "FLOAT64_LE";   
        attenuation: 0.0;   
};

coeff "MTR" {
         filename: "/home/hifi/filter/XO2R44.dbl";
        format: "FLOAT64_LE";     
        attenuation: 0.0;   
};   
   
coeff "TTL" {
         filename: "/home/hifi/filter/XO1R44.dbl";
        format: "FLOAT64_LE";     
        attenuation: 0.0;   
};

coeff "TTR" {
         filename: "/home/hifi/filter/XO1R44.dbl";
        format: "FLOAT64_LE";     
        attenuation: 0.0;   
};


## INPUT OUTPUT ##

## File in ##

input "fileleft", "fileright" {
	device: "file" { path: "/home/..../logsweep44"; }; # Pfad zum Logsweep
	sample: "FLOAT_LE";
	channels: 2/0,1;
};

## File out ##

output "fileout" {
	device: "file" { path: "/home/..../logsweep44_rec"; }; # Speicherort für aufgenommenen Logsweep
	sample: "FLOAT_LE";
	channels: 1/0;
};


## analog in ##

input "micin" {
        device: "jack" { ports: "system:capture_1"; }; # Port für Mikrofoneingang gegebenenfalls anpassen
	sample: "AUTO";
	channels: 1/0;
};

## analog out ##

output "left-high", "right-high", "left-mid", "right-mid", "left-low", "right-low" {
        device: "jack" { ports: "system:playback_1","system:playback_2","system:playback_3","system:playback_4","system:playback_5","system:playback_6"; };
        sample: "AUTO";
        delay: 0,0,0,0,0,0;
        channels: 6;
};

#### FILTER ####


filter "HTL-Filter" {
	from_inputs: "left-in";
	to_outputs: "left-high";
	coeff: "HTL";
};

filter "HTR-Filter" {
	from_inputs: "right-in";
	to_outputs: "right-high";
	coeff: "HTR";
};

filter "MTL-Filter" {
	from_inputs: "left-in";
	to_outputs: "left-mid";
	coeff: "MTL";
};

filter "MTR-Filter" {
	from_inputs: "right-in";
	to_outputs: "right-mid";
	coeff: "MTR";
};

filter "TTL-Filter" {
	from_inputs: "right-in";
	to_outputs: "left-low";
	coeff: "TTL";

};

filter "TTR-Filter" {
	from_inputs: "right-in";
	to_outputs: "right-low";
	coeff: "MTL";
};

## Mikro korrektur ##

filter "mic" {
	from_inputs: "micin";
	to_outputs: "fileout";
        coeff: "mcoeff";
};
Du musst lediglich noch den Pfad zum Logsweep angeben und den Pfad wo die aufgenommene Datei gespeichert werden soll.

Die Config spielt dann automatisch einen Logsweep ab, erst links dann rechts und speichert ihn in einer Datei. Wenn vorhanden wird auch automatisch die Mic-korrektur mit eingebaut.

Diese muss dann im entsprechenden Verzeichnis als Inverse im .dbl format vorliegen.
Wenn das nicht gewünscht ist einfach entsprechendes auskommentieren.

Den Logsweep erzeugst du mit Acourate mit Generate>Logsweep. Die Samplefrequenz entsprechend anpassen, 32bit und raw + stereo(L+R).
Amplitude 0.8 den rest kannst du so lassen.

Wenn du auf OK klickst erzeugt Acourate einmal den Logsweep selber und die entsprechende Inverse. Den Logsweep(die raw Datei) auf deinem Brutefir Rechner ins entsprechende Verzeichnis kopieren.
Die aufgezeichnete Datei anschließend mit der Inversen falten. Also in Acourate Logsweep>Logsweep Convolution dann Datei wählen(Logsweep+Inverse) und Extract Pulses und gewünschte Pulslänge angeben. Dann werden die Pulsantworten automatisch ausgeschnitten und du hast eine fertige Messung vom linken und rechten LS.

Durch verändern der konfig kann man jetzt quasi alles mögliche messen. Nur HT oder nur TT etc. Man kann auch andere Logsweeps erzeugen die zb nur Links oder nur in einem bestimmten Frequenzbereich arbeiten (z.b- von 10-500hz für TTs etc.) Wichtig ist das du immer die passende Inverse zum jeweiligen Logsweep hast. Hier muss man etwas aufpassen weil Acourate immer den gleichen Dateinamen zum speichern nimmt. Also entsprechenden Logsweep + Inverse in aufschlußreiche Namen umbenennen.
Die Logsweeps+ Inverse werden unter Eigene Dateien/Acourate/Logsweep gespeichert.

Gruß Udo
Bild
Antworten