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 Udor,

Ich hab Ubuntu 10.10 neu installiert, und gleich mal das von dir empfohlene Packet ausprobiert. Prima, ich sehe dass das Eingangssignal ankommt.

Raus kommt trotz aufgerissenen Analogausgängen leider nichts - ausser ich schleife das Signal in Envy24controll auf einen Ausgang durch. Töne machen kann die Karte also.

Für den Rest reicht meine Logik immernoch nicht.

Underflow passiert immernoch ab und zu nach Lust und Laune.
:| :| :|

Viele Grüße,
Julian
Bild
Udor
Aktiver Hörer
Beiträge: 389
Registriert: 02.09.2010, 00:17

Beitrag von Udor »

ferryman hat geschrieben:Raus kommt trotz aufgerissenen Analogausgängen leider nichts - ausser ich schleife das Signal in Envy24controll auf einen Ausgang durch. Töne machen kann die Karte also.
Ok, das ist ja schon mal was.

Hat dein Board Onboardsound? Wenn ja abschalten oder dafür sorgen das deine Delta immer HW:0 ist.
Linux vergibt die nummern beim booten immer neu deshalb kann es sein das die Delta die vorher noch HW0 war auf einmal HW1 ist...das nur am rande.

Hast du die limits.conf für den RT-Modus konfiguriert? Wenn nein poste mal den Inhalt der limits.conf.(etc/security/limits.conf oder wenn vorhanden /etc/security/limits.d/audio.conf)

Ansonsten empfehle ich dir die installation von Jack. gerade wenn du den Rechner als Player nutzen willst unverzichtbar. Das routing wird dadurch auch leichter.

Paket heißt jackd und die Gui dafür qjackctl.
Ich meine jackd fragt bei der installation auch ob die limits.conf editiert werden soll.

Mit welcher brutefirconfig hast du es jetzt probiert?

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

Beitrag von ferryman »

Hallo Udo,

Ich hab es mit den verschiedenen bisher erstellten Configs probiert, die alle in etwa denen hier im Thread gezeigten entsprechen.

limits.conf höre ich zum ersten Mal :oops:

Die Installation von Jack scheint mir jetzt auch sinnvoll, wie ich von Axel höre ist das zwar auch nicht trivial - aber vielleicht (hoffentlich!) anschaulicher als die Arbeit mit Alsa.

Vielen Dank für die Hilfe.

Julian

PS: Onboardsound wurde ganz zu Beginn im BIOS deaktiviert; M-Audio ist immer HW:0.
Bild
LIFU
Aktiver Neuling
Beiträge: 28
Registriert: 09.11.2010, 16:38

Beitrag von LIFU »

Hoi Julian

Das Thema interresiert mich ja brennend.

Wenn ich aber sehe, dass intelligente, junge, flexible und sehr interessierte Leute Probleme haben, sehe ich für mich ja schwarz. :cry: :cry:

Ich werde damit wohl noch etwas warten müssen und noch etwas an der reinen Mechanik basteln. 8)

Es grüsst der Verunsicherte und Verwirrte

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

Beitrag von ferryman »

Hallo Gusti,

prinzipiell kämpfe ich ja mit Startschwierigkeiten. Prinzipiell habe ich mit einem wesentlich leichteren Start gerechnet. Wenn das Ganze denn mal läuft, beschränkt sich die Bedienung ja auf das Laden neuer Filtersätze. Wenn bei mir der Groschen beim Aufsetzen des Faltrechners fällt, kann ich das gerne für Dich machen.

Das hat auch immer einwandfrei funktioniert, siehe Contest und Messe, und erfordert keine weiteren Klimmzüge.

Das ist auch das Einzige, was mich motiviert mich durch die ganzen Schwierigkeiten durchzubeißen. Ansonsten hätte ich schon eine Windows-Variante umgesetzt.

Viele Grüße,
Julian
Bild
Udor
Aktiver Hörer
Beiträge: 389
Registriert: 02.09.2010, 00:17

Beitrag von Udor »

Hallo Julian

Also ich hab jackd noch mal testweise auf meinem Desktop Rechner installiert. Nach der installation wird man gefragt ob die limits.d/audio.conf editiert werden soll. Heißt also um die Einstellung brauchst du dich nicht mehr zu kümmern.

Falls das bei dir anders sein sollte in etc/security/limits.d/ eine datei mit dem namen audio.conf anlegen und folgendes da eintragen (als root)

Code: Alles auswählen

@audio   -  rtprio          95
@audio   -  memlock    775000 # in kilobyte je nach Hauptspeichergröße
@audio   -  nice            -19
Darauf achten das der Benutzer auch der gruppe audio angehört.

Achtung das Paket jackd installiert jackd2. Das scheint noch nicht ganz sauber zu laufen. Zumindest bekomme ich da immer Fehlermeldungen beim starten.

Nimm vorsichtshalber das Paket jackd1. Das startet ohne zu mucken.

Starte jack nach der installation mit:

jackd -R -P14 -dalsa -d hw:0 -r44100 -p512 -n2

Damit müsste der Jack daemon laufen.

Dann muss die Brutefir Konfig noch für Jack angepasst werden:

Hier mal der Input/Output Teil meiner alten 2-Kanal Brutefir konfig. Als Eingabe Kanäle sind die Ports von Aqualung angewählt. Damit Brutefir damit startet muss Aqualung vorher gestartet sein sonst meckert Brutefir das die Input-Ports nicht da sind.

Code: Alles auswählen

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

output "left-out", "right-out" {
device: "jack" { ports: "system:playback_1", "system:playback_2"; };
delay: 0,0;
sample: "AUTO";
channels: 2/0,1;
};
Alle verbindungen werden dann automatisch gesetzt. Schön zu sehen wenn man Jack-Control startet und das Fenster "Verbindungen" öffnet. Wahrscheinlich muss du die Bezeichnungen der Ports noch entsprechend anpassen. Ich weiss nicht ob die Ausgänge bei dir auch "system:playback_1..." heißen.

Bild

P.S. man muss nicht unbedingt immer die Gesamtanzahl der Kanäle angeben. Wichtig ist das die angegeben Kanalnummern auch existieren. Wenn man nur 2 Kanäle braucht reicht es auch bei Channels 2/0,1 anzugeben...

Um weitere Kanäle anzugeben einfach die Brutefirkonfig entsprechend erweitern.

Das wars eigentlich schon. Eigentlich gar nicht so schwer :mrgreen:

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

Beitrag von Da Alchemist »

Hallo Julian,

ich hab mal den Thread überflogen und weiß nicht ganz genau was Du machen möchtest.

Aus der brutefir_config errate ich folgendes:

3 Wege Stereo, ohne Einzelentzerrung. Richtig?

Ich hab mir deine beiden Configs mal angeschaut.

Die erste hat 3 Wege und 6 Ausgänge, die 2. nur 4 Ausgänge?

Den Fehler mit den 48kHz Files hast du in der 2. schon geändert; Du benutzt aber 5 mal das File XO1L44.dbl, welches vermutlich für den linken Kanal gedacht ist, und nur einmal XO1R44.dbl (für den rechten Hochtöner). Ist das so von Dir beabsichtigt?

Du hast überhaupt keine Weiche; auf dem Hochtöner kommt das gleiche Signal wie auf dem Tieftöner an.... Ich glaube das muss XO1R44.dbl, XO2R44.dbl und XO3R44.dbl heißen für die rechten Kanäle.....

Warum Brutefir bei Dir nicht stabil durchläuft kann ich nicht sagen, ich schlage aber folgende Änderungen vor:

ZU den "DEFAULT GENERAL SETTINGS"

Grundsätzlich:
Der Atom Prozessor ist auch in der Dual Core Version nicht so doll der Rechenkünstler.

Was hast du den momentan installiert? Das Spb Linux, ein vollständiges oder ein angepasstes Ubuntu?

Je nachdem was Du am laufen hast (evtl. grafische Oberfläche) kann es mit den 64 bit Files ziemlich eng werden. (siehe auch in der Brutefir Beschreibung:
Depending on processor used, you may lose assembler optimisations when running in 64 bit. Also, memory bandwidth used by BruteFIR will naturally double, which reduces performance. Thus, although 64 bit and 32 bit operations are generally equally fast, due to increased memory usage, BruteFIR needs 30 - 50% extra processor time, not counting additional effects if assembler optimisations are lost.)

Auf kurz: 64 bit ist nicht so der Burner für Brutefir.

Daher zunächst float_bits: 32; ausprobieren.

Filterlängen partitionieren:

Daher filter_length: 4096,16; oder 8192,8; probieren.

Auch allow_poll_mode: true; kann zu Problemen führen. Wenn die Soundkarte das braucht meldet sich Brutefir bei dir!

Daher:

allow_poll_mode: false;

Was auch nicht so gut sein muss; lock_memory.

Die Brutefir Beschreibung hierzu:

Warning: there seems to be a bug in the Linux kernel which makes the shared memory to be locked one time for each process, meaning that when lock_memory is set to true, BruteFIR will seem to consume a lot more memory than it should. Also, it makes of course no sense to lock memory if your system does not have a swap activated. Due to this issue, the best thing to do is to have a system with no swap and avoid locking the memory.

Daher die Zeile lock_memory löschen.

Wenn Du Jack benutzen willst sollte diese config funktionieren. (Da wo #Falsches File; steht mußt Du unbedingt die Filter überprüfen; ich habs mit 64bit Dummy-Files getestet; warum die Tieftöner einen anderen Eingang haben, der in deiner Config nirgendwo vorkam, habe ich auch nicht verstanden)

Code: Alles auswählen

# DEFAULT GENERAL SETTINGS ##

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: "/usr/lib/brutefir";   # extra path where to find BruteFIR modules
monitor_rate: true;         # monitor sample rate
powersave: false;            # pause filtering when input is zero

convolver_config: "/home/guschdl/.brutefir_convolver"; # location of convolver config file

## LOGIC ##

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

## COEFFS ##

coeff "HTL" {
    filename: "/home/guschdl/Acourate/XO1L44.dbl";         #Falsches File; 
    format: "FLOAT64_LE";
};

coeff "HTR" {
    filename: "/home/guschdl/Acourate/XO1R44.dbl";          #Falsches File
    format: "FLOAT64_LE";
};

coeff "MTL" {
    filename: "/home/guschdl/Acourate/XO1L44.dbl";          #Falsches File
    format: "FLOAT64_LE";
};

coeff "MTR" {
    filename: "/home/guschdl/Acourate/XO1R44.dbl";        #Falsches File
    format: "FLOAT64_LE";
};

coeff "TTL" {
    filename: "/home/guschdl/Acourate/XO1L44.dbl";       #Falsches File
    format: "FLOAT64_LE";
};

coeff "TTR" {
    filename: "/home/guschdl/Acourate/XO1R44.dbl";       #Falsches File
    format: "FLOAT64_LE";
};



## INPUT, OUTPUT ##

input "left", "right" {
device: "jack" { };
        sample: "AUTO";
        channels: 2/0,1;
};

output "HTL_out", "HTR_out", "MTL_out", "MTR_out", "TTL_out", "TTR_out" {
device: "jack" { ports: "alsa_pcm:playback_1", "alsa_pcm:playback_2", 
        "alsa_pcm:playback_3", "alsa_pcm:playback_4", "alsa_pcm:playback_5", "alsa_pcm:playback_6"; };
        sample: "AUTO";
        channels: 6/0,1,2,3,4,5;
delay: 0,0,0,0,0,0;
dither: true;
};

## FILTERS ##

filter "HTL_filter" {
    from_inputs: "left";
    to_outputs: "HTL_out";
#    coeff: -1;
    coeff: "HTL";
};

filter "HTR_filter" {
    from_inputs: "right";
    to_outputs: "HTR_out";
#    coeff: -1;
    coeff: "HTR";
};

filter "MTL_filter" {
    from_inputs: "left";
    to_outputs: "MTL_out";
#    coeff: -1;
    coeff: "MTL";
};

filter "MTR_filter" {
    from_inputs: "right";
    to_outputs: "MTR_out";
#    coeff: -1;
    coeff: "MTR";
};

filter "TTL_filter" {
    from_inputs: "left";              # Eingang geändert
    to_outputs: "TTL_out";
#    coeff: -1;
    coeff: "TTL";
};

filter "TTR_filter" {
    from_inputs: "right";           # Eingang geändert
    to_outputs: "TTR_out";
#    coeff: -1;
    coeff: "TTR";
};
Jack würde ich über die Kommandozeile starten; ggf. Starter:

jackd -P89 -dalsa -r44100 -p1024 -n2 -D -Chw:0 -Phw:0 -S

Als Patchbay diese benutzen: http://www.linuxdsp.co.uk/download/jp1/index.html

Mit qjackctl habe ich bei meiner schwachen "Resteverwertungskiste", Athlon Mobile mit 1600 MHz , 512 MB Speicher, Terratec Aureon SKY, Probleme, wenn ich mit Starter JACK starte gibt es keine...Warum das so ist weiß ich nicht.

Die Prozessorlast liegt bei < 30% der Proz dümpelt bei 800 MHz (Ich hab die Config auf dem obigen Rechner getestet,die Karte hat ein Via Envy24 HT Soundchip (ICE1724) soweit liegt sie mit deiner ICE1712 nicht auseinander...)

Für die Alsa Nutzung dieses File:

Code: Alles auswählen

# DEFAULT GENERAL SETTINGS ##

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: "/usr/lib/brutefir";   # extra path where to find BruteFIR modules
monitor_rate: true;         # monitor sample rate
powersave: false;            # pause filtering when input is zero

convolver_config: "/home/guschdl/.brutefir_convolver"; # location of convolver config file

## LOGIC ##

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

## COEFFS ##

coeff "HTL" {
    filename: "/home/guschdl/Acourate/XO1L44.dbl";       #Falsches File; 
    format: "FLOAT64_LE";
};

coeff "HTR" {
    filename: "/home/guschdl/Acourate/XO1R44.dbl";       #Falsches File
    format: "FLOAT64_LE";
};

coeff "MTL" {
    filename: "/home/guschdl/Acourate/XO1L44.dbl";        #Falsches File
    format: "FLOAT64_LE";
};

coeff "MTR" {
    filename: "/home/guschdl/Acourate/XO1R44.dbl";       #Falsches File
    format: "FLOAT64_LE";
};

coeff "TTL" {
    filename: "/home/guschdl/Acourate/XO1L44.dbl";        #Falsches File
    format: "FLOAT64_LE";
};

coeff "TTR" {
    filename: "/home/guschdl/Acourate/XO1R44.dbl";      #Falsches File
    format: "FLOAT64_LE";
};



## INPUT, OUTPUT ##

input "left", "right" {
device: "alsa" { device: "hw:0"; ignore_xrun: true; };
    sample: "S24_4LE";
        channels: 2/0,1;
};

output "HTL_out", "HTR_out", "MTL_out", "MTR_out", "TTL_out", "TTR_out" {
device: "alsa" { device: "hw:0"; ignore_xrun: true; };
    sample: "S24_4LE";
        channels: 6/0,1,2,3,4,5;
delay: 0,0,0,0,0,0;
dither: true;
};

## FILTERS ##

filter "HTL_filter" {
    from_inputs: "left";
    to_outputs: "HTL_out";
#    coeff: -1;
    coeff: "HTL";
};

filter "HTR_filter" {
    from_inputs: "right";
    to_outputs: "HTR_out";
#    coeff: -1;
    coeff: "HTR";
};

filter "MTL_filter" {
    from_inputs: "left";
    to_outputs: "MTL_out";
#    coeff: -1;
    coeff: "MTL";
};

filter "MTR_filter" {
    from_inputs: "right";
    to_outputs: "MTR_out";
#    coeff: -1;
    coeff: "MTR";
};

filter "TTL_filter" {
    from_inputs: "left";                        # Eingang geändert
    to_outputs: "TTL_out";
#    coeff: -1;
    coeff: "TTL";
};

filter "TTR_filter" {
    from_inputs: "right";                      # Eingang geändert
    to_outputs: "TTR_out";
#    coeff: -1;
    coeff: "TTR";
};
Diese Config habe ich auch mit 64 bit getestet; leider startet Brutefir damit nicht immer; erst im dritten Anlauf lief es durch.(Prozessorlast und Speicherverbrauch allerdings vollkommen unproblematisch. lass ich mir mit "htop" anzeigen)

Wenn Du ein "angepasstes Ubuntu" verwendest, denke daran, dass Ubuntu Pulseaudio als Soundsystem benutzt; evtl. fehlt hier was, mit dem Paket "pavucontrol" installierst Du alles nach. In pavucontrol dann die Eingänge und Ausgänge wählen....

Die Probleme mit der "Nicht Wiedergabe" trotz installiertem Alsamixer, hatte ich nämlich bei meiner reduzierten Ubuntu Version mit LXDE auch. (Belegt jetzt ca 1.5 GB auf dem Stick)

Viel Glück :cheers:

Da Alc

@ Udo: Ich arbeite ja jetzt lieber mit den Disconnect und Connect Befehlen unter Jack, gibt es da so ein Befehl wie Disconnect All, also wo auf einen Schlag alles gekappt wird?
Shefffield
Aktiver Hörer
Beiträge: 135
Registriert: 17.03.2010, 17:16
Wohnort: Markt Indersdorf

Beitrag von Shefffield »

Moin.

Langsam bin ich auch entnervt.

Meine brutefir_config:

Code: Alles auswählen

## DEFAULT GENERAL SETTINGS ##

float_bits: 64;             # internal floating point precision
sampling_rate: 44100;       # sampling rate in Hz of audio interfaces
filter_length: 8192,16;     #
#filter_length: 4096,16;
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: "/usr/lib/brutefir";   # extra path where to find BruteFIR modules
monitor_rate: true;         # monitor sample rate
powersave: true;            # pause filtering when input is zero
lock_memory: false;          # try to lock memory if realtime prio is set
convolver_config: "/home/axl/.brutefir_convolver"; # location of convolver config file

## LOGIC ##

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

## COEFFS ##

#  TT links
coeff "lowlcoeff" {
#       filename: "/home/axl/Acourate/Zoe01RO/XO1L44.dbl";
       filename: "/home/axl/Acourate/Zoe01RO/Cor1L44.dbl";
    format: "FLOAT64_LE";
};

#  TT rechts
coeff "lowrcoeff" {
#        filename: "/home/axl/Acourate/Zoe01RO/XO1R44.dbl";
        filename: "/home/axl/Acourate/Zoe01RO/Cor1R44.dbl";
    format: "FLOAT64_LE";
};

#  MT links
coeff "midlcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO2L44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor2L44.dbl";
        format: "FLOAT64_LE";
};

#  MT rechts
coeff "midrcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO2R44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor2R44.dbl";
        format: "FLOAT64_LE";
};

#  HT links
coeff "highlcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO3L44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor3L44.dbl";
        format: "FLOAT64_LE";
};

#  HT rechts
coeff "highrcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO3R44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor3R44.dbl";
        format: "FLOAT64_LE";
};






## INPUT digital

input "d_leftin", "d_rightin" {
    device: "jack" { ports: "aqualung:out_L", "aqualung:out_R"; };
    sample: "AUTO";
    channels: 18/0,1;
};


## OUTPUT ADAT

output "d_leftout_low", "d_rightout_low", "d_leftout_mid", "d_rightout_mid", "d_leftout_high", "d_rightout_high" {
    device: "jack" { ports: "system:playback_1", "system:playback_2", "system:playback_3", "system:playback_4", "system:playback_5", "system:playback_6"; };
    sample: "AUTO";
    channels: 18/8,9,10,11,12,13;
    delay: 0,0;
#    dither: true;
};

## FILTERS ##

filter "leftfilterlow" {
    from_inputs: "d_leftin";
    to_outputs: "d_leftout_low";
#    coeff: -1;
    coeff: "lowlcoeff";
};

filter "rightfilterlow" {
    from_inputs: "d_rightin";
    to_outputs: "d_rightout_low";
#    coeff: -1;
    coeff: "lowrcoeff";
};

filter "leftfiltermid" {
        from_inputs: "d_leftin";
        to_outputs: "d_leftout_mid";
#       coeff: -1;
        coeff: "midlcoeff";
};

filter "rightfiltermid" {
        from_inputs: "d_rightin";
        to_outputs: "d_rightout_mid";
#       coeff: -1;
        coeff: "midrcoeff";
};

filter "leftfilterhigh" {
        from_inputs: "d_leftin";
        to_outputs: "d_leftout_high";
#       coeff: -1;
        coeff: "highlcoeff";
};

filter "rightfilterhigh" {
        from_inputs: "d_rightin";
        to_outputs: "d_rightout_high";
#       coeff: -1;
        coeff: "highrcoeff";
};
erzeugt diese Meldung:

Code: Alles auswählen

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

Internal resolution is 64 bit floating point.
SSE2 capability detected -- optimisation enabled.
Creating 4 FFTW plans of size 16384...finished.
Loading 6 coefficient sets...finished.
JACK I/O: Parse error: expected comma (,).
Error at line 73 for input device using module "jack".
Das Setup ist:

UbuntuStudio 10.10 mit einer RME Digi 9636.

Bild

Danke im Voraus,
Axel


Ergänzung:

Ändere ich die Eingangssektion der brutefir_config auf

Code: Alles auswählen

## INPUT digital

input "d_leftin", "d_rightin" {
    device: "jack" { };
    sample: "AUTO";
    channels: 18/0,1;
};
quittiert BruteFIR das mit

Code: Alles auswählen

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 16384...finished.
Loading 6 coefficient sets...finished.
JACK I/O: JACK reported an error: jack_client_new: deprecated
JACK I/O: Warning: JACK is not running with SCHED_FIFO (realtime).
JACK I/O: Warning: JACK thread has priority 0, but BruteFIR expected 9.
JACK I/O: Parse error: expected comma (,).
Error at line 82 for output device using module "jack".
WTF???

Die gleiche Nummer auch im Ausgang:

Code: Alles auswählen

## INPUT digital

input "d_leftin", "d_rightin" {
    device: "jack" { };
    sample: "AUTO";
    channels: 18/0,1;
};


## OUTPUT ADAT

output "d_leftout_low", "d_rightout_low", "d_leftout_mid", "d_rightout_mid", "d_leftout_high", "d_rightout_high" {
    device: "jack" { };
    sample: "AUTO";
    channels: 18/8,9,10,11,12,13;
    delay: 0,0;
#    dither: true;
};
erzeugt:

Code: Alles auswählen

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 16384...finished.
Loading 6 coefficient sets...finished.
JACK I/O: JACK reported an error: jack_client_new: deprecated
JACK I/O: Warning: JACK is not running with SCHED_FIFO (realtime).
JACK I/O: Warning: JACK thread has priority 0, but BruteFIR expected 9.
Realtime priorities are min = 7, usermax = 8, mid = 9 and max = 10.
Estimated CPU clock rate is 2792 MHz. CPU count is 1.
JACK I/O: Open channels must be equal to used channels for this I/O module.
Failed to init input device.
Failed to initialise digital audio interfaces.
Spaßig, oder?
Bild
Da Alchemist
Aktiver Neuling
Beiträge: 35
Registriert: 10.12.2010, 15:09

Beitrag von Da Alchemist »

Der Fehler ist nicht so einfach. Ich hab das mal bei mir versucht (nur die Inputs Outputs); der Unterschied war die Definition der Channels.

Also hier der erste Versuch:

Code: Alles auswählen

## DEFAULT GENERAL SETTINGS ##

float_bits: 64;             # internal floating point precision
sampling_rate: 44100;       # sampling rate in Hz of audio interfaces
filter_length: 8192,16;     #
#filter_length: 4096,16;
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: "/usr/lib/brutefir";   # extra path where to find BruteFIR modules
monitor_rate: true;         # monitor sample rate
powersave: true;            # pause filtering when input is zero
lock_memory: false;          # try to lock memory if realtime prio is set
convolver_config: "/home/axl/.brutefir_convolver"; # location of convolver config file

## LOGIC ##

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

## COEFFS ##

#  TT links
coeff "lowlcoeff" {
#       filename: "/home/axl/Acourate/Zoe01RO/XO1L44.dbl";
       filename: "/home/axl/Acourate/Zoe01RO/Cor1L44.dbl";
    format: "FLOAT64_LE";
};

#  TT rechts
coeff "lowrcoeff" {
#        filename: "/home/axl/Acourate/Zoe01RO/XO1R44.dbl";
        filename: "/home/axl/Acourate/Zoe01RO/Cor1R44.dbl";
    format: "FLOAT64_LE";
};

#  MT links
coeff "midlcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO2L44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor2L44.dbl";
        format: "FLOAT64_LE";
};

#  MT rechts
coeff "midrcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO2R44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor2R44.dbl";
        format: "FLOAT64_LE";
};

#  HT links
coeff "highlcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO3L44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor3L44.dbl";
        format: "FLOAT64_LE";
};

#  HT rechts
coeff "highrcoeff" {
#    filename: "/home/axl/Acourate/Zoe01RO/XO3R44.dbl";
    filename: "/home/axl/Acourate/Zoe01RO/Cor3R44.dbl";
        format: "FLOAT64_LE";
};






## INPUT digital

input "d_leftin", "d_rightin" {
    device: "jack" { ports: "aqualung:out_L", "aqualung:out_R"; };
    sample: "AUTO";
    channels: 2/0,1;
};


## OUTPUT ADAT

output "d_leftout_low", "d_rightout_low", "d_leftout_mid", "d_rightout_mid", "d_leftout_high", "d_rightout_high" {
    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/0,1,2,3,4,5;
    delay: 0,0;
#    dither: true;
};

## FILTERS ##

filter "leftfilterlow" {
    from_inputs: "d_leftin";
    to_outputs: "d_leftout_low";
#    coeff: -1;
    coeff: "lowlcoeff";
};

filter "rightfilterlow" {
    from_inputs: "d_rightin";
    to_outputs: "d_rightout_low";
#    coeff: -1;
    coeff: "lowrcoeff";
};

filter "leftfiltermid" {
        from_inputs: "d_leftin";
        to_outputs: "d_leftout_mid";
#       coeff: -1;
        coeff: "midlcoeff";
};

filter "rightfiltermid" {
        from_inputs: "d_rightin";
        to_outputs: "d_rightout_mid";
#       coeff: -1;
        coeff: "midrcoeff";
};

filter "leftfilterhigh" {
        from_inputs: "d_leftin";
        to_outputs: "d_leftout_high";
#       coeff: -1;
        coeff: "highlcoeff";
};

filter "rightfilterhigh" {
        from_inputs: "d_rightin";
        to_outputs: "d_rightout_high";
#       coeff: -1;
        coeff: "highrcoeff";
};
Zunächst mußt Du die Verbindungen von Hand setzen. Danach können wir versuchen das Routing zu automatisieren.

Ich fürcht du mußte in den Outputs alle 18 Kanäle definieren... :mrgreen:

Viel Glück

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

Beitrag von Udor »

Hallo Sheffield

Alch hat es schon richtig erfasst.

Immer nur soviele Kanäle angeben wie auch benutzt werden. In den Inputs hast du bei Channels 18 angegeben aber nur 2 definiert. Brutefir erwartet nach Kanal 0,1... ein Komma und den nächsten Kanal.

Daher die meldung expectet comma. Gleiches spiel bei den Outputs.Auch hier hast du 18 Kanäle angegeben aber nur 6 definiert...

Korrigier das erst mal dann sehen wir weiter.

Edit:

@sheffield
Jack muss mindestens mit einer Priorität mit 9 gestartet werden bei dir steht das auf default.
Stell hier mal 14 ein.

@Alchemist

Brutefir hab ich immer im lock memory modus am laufen. Sollte es hier Probleme geben sorgt die limits.conf dafür das dem System der Speicher nicht ausgeht.

Partition Convolving erhöht den Speicherbedarf und die Prozessorlast. bei 64 Partitions mit einer länge von 1024 war feierabend mit meinem Pentium M 1,6 Ghz. 32 geht noch so gerade...Der Speicherbedarf explodiert dann auch. Schön zu sehen im Taskmanager.

64bit precision war bisher auch kein Problem bei mir und das wohlgemerkt mit 8 Kanälen...Kann natürlich sein das es bei einem Atom anders aussieht.



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

Beitrag von Udor »

Udo: Ich arbeite ja jetzt lieber mit den Disconnect und Connect Befehlen unter Jack, gibt es da so ein Befehl wie Disconnect All, also wo auf einen Schlag alles gekappt wird?
Fast vergessen, nein nicht das ich wüsste. Hab mich aber weiter nicht damit beschäftigt da ich die Verbindungen ja mit Brutefir konfiguriere. Dafür müsste man sich ein Script bauen was überprüft welche verbindungen gesetzt sind und wenn welche gesetzt sind diese dann mit jack_disconnect löschen...

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

Beitrag von Da Alchemist »

Julian hat ein "Broken Pipe" Problem. Das kann vielfältige Gründe haben. Eins ist die Filterlänge und die Partitionsgröße.
If you try to run BruteFIR with shorter delay than the computer can handle, or with too long filters, the program will exit with a broken pipe signal
Daher würd ich das immer mal probieren.

Kommt moch Jack ins Spiel muß auch hier noch das Verhältnis Frames/Periode berücksichtigt werden.

Mit dem lock_memory nehme ich an das hier Speicher ausschließlich für Brutefir reserviert wird.

@Sheffield
Ich hab mittlerweile rausgefunden, das auch die Angabe channels: 2; für die Eingänge und channels: 6;
für die Ausgänge reichen müßte.

Nur mit dem Routing auf die richtigen Ausgänge komm ich nicht weiter. Bei mir ist das nicht weiter schlimm, da ich die ersten vier Ausgänge nutze, versuche ich aber die Ausgänge 4-8 zu aktivieren werden die ersten vier immer mitbelegt.

Ebenso wenig klappt das mit der Definition von den Aqualung Eingängen bei mir mit Jack nicht. Starte ich Aqualung vor Brutefir werden sofort die ersten beiden Ausgänge belegt (wie auch in deinem Screenshot schön zu sehen). Nach dem Start von Brutefir werden dann zusätzlich noch die Eingänge von Brutefir belegt.

Warum das bei Udo klappt ist mir ein Rätsel.

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

Beitrag von Da Alchemist »

Nochmal ein Nachtrag, Ich hab mir nochmal Julians Meldungen angeguckt

rti: 0.087; das heißt der Prozessor ist lange nicht am Ende, ich habe verschiedene Versuche mit den Partitionsgrößen gemacht. Die Prozessorlast steigt bei kleinerer Partitionsgröße, der Speicherbedarf sinkt jedoch.

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

Beitrag von Udor »

ulian hat ein "Broken Pipe" Problem. Das kann vielfältige Gründe haben. Eins ist die Filterlänge und die Partitionsgröße.
Ähm, ich weiss nicht was du genau meinst, vielleicht reden wir aneinander vorbei. Die Filterlänge ergibt sich aus der Partitionsgröße und Anzahl der Partitionen. Oder andersrum wenn ich einen Filter mit einer länge von 65536 Samples in 16 Partitionen aufteile dann hat jede Partition eine Länge von 4096 Samples.

Wenn man jetzt den Prozessor entlasten will dann lässt man erst mal das partition convolving ganz weg und wenn das nicht reicht die Filterlänge verkleinern.
Kommt moch Jack ins Spiel muß auch hier noch das Verhältnis Frames/Periode berücksichtigt werden.
ja die muss auf jedenfall kleiner sein wie die Partitinsgröße von Brutefir. Ich hab hier bei Jack 512 eingestellt. So kleine Blöcke krieg ich mit Brutefir bei einem 65536 langen Filter nicht hin :shock:
Wie ich schon sagte ist bei mir bei 1024/64 ende bzw. 2048/32 geht noch so gerade dann darf ich aber die Maus nicht mehr bewegen :mrgreen:
Ebenso wenig klappt das mit der Definition von den Aqualung Eingängen bei mir mit Jack nicht. Starte ich Aqualung vor Brutefir werden sofort die ersten beiden Ausgänge belegt (wie auch in deinem Screenshot schön zu sehen). Nach dem Start von Brutefir werden dann zusätzlich noch die Eingänge von Brutefir belegt.
Starte Aqualung mal mit der option " -o jack " dann klappst auch mit dem routing.
Die Man-Pages sind ab und an doch zu was gut :wink:

Hiermit wird Aqualung und Brutefir gestartet. Vorraussetzung ist das der Jackserver schon läuft(wird bei mir beim hochfahren gestartet)

Code: Alles auswählen

#!/bin/bash

/usr/bin/aqualung -o jack &

sleep 4

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

Beitrag von Da Alchemist »

Ich scheine etwas grundlegendes falsch zumachen, da es bei mir sogut klappt. :D

Mit 32 Bit geht einiges, hier ein kleines Bildschirmfoto :mrgreen: Der Proz ein 2 Kern Athlon auf einem Billigboard ca. 2 Jahre alt, taktet nicht über 1 GHz. Mit der Maus kann ich Samba tanzen. :cheers:

Bild

Danke für Aqualung

Gruß
Da Alc
Antworten