Brutefir - Ausfall wegen Energiesparoptionen Linux

fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Brutefir - Ausfall wegen Energiesparoptionen Linux

Beitrag von fftransformation »

Hallo Zusammen,

ich habe aktuell wieder mal das Problem, dass sich Brutefir verabschiedet, weil der Prozessor immer in irgendwelche Energiesparzustände geht.

Das Fehlerbild geht von Anwendung beendet sich (sporadisch nach 1-2 Stunden) einfach von alleine bis zu I/O Bufferfehlern wo dann stotternd Ton ausgegeben wird. (Der Fehler kommt nicht gleich, immer nach einer weile)

Ich habe schon alles mögliche im Bootloader probiert diese Energiesparmodies zu deaktivieren, wie bekommt man es hin, dass der Prozessor einfach wie früher an bleibt? - Bzw. die gleiche Taktrate beibehält?

Was ich schon versucht habe:
GRUB_CMDLINE_LINUX="fbcon=rotate:1 quiet intel_idle.max_cstate=0 processor.max_cstate=0 idle=poll intel_pstate=disable"
Danach gibt
root@faltpc:~# cat /sys/devices/system/cpu/cpuidle/current_driver gibt auch
"none" aus

Brutefir habe ich mit Lock Memory true/ false auch schon rumgespielt, ebenso mit Pollmode.
Aktuell habe ich 256,256 Partitionen und Pollmode false und es scheint gerade mal zu laufen.

Hatte von euch noch niemand das Problem, man liest komischerweise überhaupt nichts davon..

Mein System ist minimal Debian11 mit dem Realtimepatch: apt install linux-image-rt-amd64 linux-image-rt-amd64-dbg linux-headers-rt-amd64
ohne GUI nur cmd

Vielleicht hat jemand eine Idee, eventuell suche ich auch an der total falschen Stelle.

Grüße Georg
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin Georg,

ich würde im BIOS ein feste CPU Frequenz einstellen. Je nachdem welches Board bzw. welchen Prozessor du einsetzt mag das im Menu unterschiedlich aussehen. Ich würde im ersten Versuch nach "Turbo Boost" suchen und das abschalten. Eventuell gibt es auch Energiesparoptionen, die du deaktivieren kannst.

Ein anderer Weg, um zu verhindern, dass brutefit zwischen Prozessoren oder Threads hin und her bewegt wird, ist, den Kern für brutefir fest vorzugeben:

Code: Alles auswählen

taskset -c n
wobei n der gewünschte core ist.

Grüße,
Andree
Bild
fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Beitrag von fftransformation »

Turbo und all das habe ich schon deaktiviert, nur C0 gibt es in dem Bios nicht, ebenso wenig wie Hyperthread und P-Modes.
Das mit dem festlegen von der Taktfrequenz könnte ich noch versuchen...

Daher bin ich auf die Einstellungen vom Linux angewiesen.
Buschel hat geschrieben: 08.01.2025, 11:32 Prozessoren oder Threads hin und her bewegt
Hmm, da komme ich nicht genau mit, Brutefir verteilt doch die Last symmetrisch auf alle 4 Kerne beim Start.
Genau genommen weiß ich nicht warum Brutefir immer mal wieder so spirenzchen macht, aber in Moment mit 0.5xx Realtimeindex scheint es stabil zu laufen, zuvor waren es 0.02x Realtimeindex und da kam es ständig zu dem Fehler.

Es deutet darauf hin, dass es irgendwas mit Last und damit verbundenen Energiesparmodies.
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin,

ich weiß immer noch nicht welchen Prozessor du einsetzt. Bei neueren Intel-Prozesoren werden Cores abgeschaltet, falls nicht genutzt. Dann müssen Prozesse von einem zum anderen Core übergeben werden. Selbst ohne diesen Umstand: nicht brutefir verteilt sich auf die Cores, sondern das OS macht das. Und das OS kann dementsprechend auch die brutefir-Prozesse dorthin legen wo es meint. Eventuell hakt es wegen der Core-Wechsel bei dir?
Mit "taskset -c n" kannst du das vermeiden. Ein benutzter Core wird nicht deaktiviert, und Wechsel finden bei fester Zuweisung nicht statt. Das ist wirklich ein denkbar einfacher Versuch. Du musst nur "taskset" nur vor deinem üblichen brutefir Kommando einsetzen, z.B.

Code: Alles auswählen

taskset -c 2 brutefir bla-bla-bla
Weitere Optionen (auch wenn ich glaube, dass "taskset" helfen sollte):
  1. Hilft eine Erhöhung der Priorität der Audioprozesse? Üblicherweise laufen die Prozesse mit geringer Priorität.
  2. Nutzt du einen Linux realtime Kernel?
Grüße,
Andree
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin nochmal,

ich lese gerade nochmal folgende Infos in deinen vorherigen Posts:
fftransformation hat geschrieben: 08.01.2025, 09:51 Aktuell habe ich 256,256 Partitionen und Pollmode false und es scheint gerade mal zu laufen.
fftransformation hat geschrieben: 09.01.2025, 07:33 ... aber in Moment mit 0.5xx Realtimeindex scheint es stabil zu laufen, zuvor waren es 0.02x Realtimeindex und da kam es ständig zu dem Fehler.
Jetzt belastest du offenbar dein System stark. Wenn die Prozesspriorität zu gering ist, und du kein Realtime Linux einsetzt, kann das die Aussetzer erklären. Die brutefir Prozesse kommen einfach nicht rechtzeitig dran, um die Daten für den nächsten kurzen Wiedergabezeitraum (256 samples) zu liefern.

Nimm bitte deutlich weniger Partitionen und verringere dadurch die Last, z.B. "2048, 32" (Delay bei 48 kHz ist 85 ms) oder "1024, 64" (Delay = 43 ms). Gleichzeitig "taskset", um den Core fest zuzuweisen.

Grüße,
Andree
Bild
fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Beitrag von fftransformation »

Hallo Andree,

es ist genau andersrum, jetzt wo ich den belaste tut es zuverlässig, wo kaum Auslastung war - kam es zum Fehler.

Und ich habe den Realtimepatch durchgeführt, zeigt beim booten auch einen Hinweis auf den RT Kernel.

Das mit dem Taskset werde ich noch probieren, das habe ich falsch interpretiert mit den Kernen, da könnte auch noch ein Hase begraben sein.
Das doofe ist ich kenne mich mit Linux kaum aus, daher kann ich (mit Hilfe) nur stochern...
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin,
fftransformation hat geschrieben: 09.01.2025, 10:57 es ist genau andersrum, jetzt wo ich den belaste tut es zuverlässig, wo kaum Auslastung war - kam es zum Fehler.
Nicht ganz. Bei zu geringer Auslastung greift evtl. deine Theorie, dass da etwas in den Sparmodus geht. Das hast du versucht durch höhere Auslastung zu vermeiden. Das wiederum hat den Seiteneffekt, dass du zeitlich „zu knapp“ bist.
Lösung: geringe Last, aber den Kern fest konfigurieren.

fftransformation hat geschrieben: 09.01.2025, 10:57 Und ich habe den Realtimepatch durchgeführt, zeigt beim booten auch einen Hinweis auf den RT Kernel.

Das mit dem Taskset werde ich noch probieren, das habe ich falsch interpretiert mit den Kernen, da könnte auch noch ein Hase begraben sein.
RT Kernel ist schon mal sehr gut. Berichte mal was sich mit weniger Partitionen und taskset tut. Weitere Alternative ist die Prozesspriorität.

Grüße,
Andree
Bild
fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Beitrag von fftransformation »

Hallo Andree,

ich habe gestern mal getestet.
-Brutefir Partitionierung auf 4096,16 konfiguriert
-Grub Bootloader, alle Energiesparoptionen deaktiviert, update grub und reboot (also zurückgesetzt, so dass man von einem normalen System ausgehen kann)
-Im Bios waren schon alle Energiesparoptionen (Hyperthread, Prozessor c-state, sowie alles was mit Prozessor und Funktionen zu tun hat) schon deaktiviert.
-sudo brutefir config, sofort viele underflows, läuft überhaupt nicht vernüftig
-taskset -c 2(und auch 0,1,3) brutefir config hat erst einmal nichts gebracht, sofort underflows mit stotterndem Ton, jedoch etwas stabiler als ohne taskset
-Im Bios nur einen prozessorkern zu aktivieren - gleiches Ergebnis, dann
-intel_idle.max_cstate=1 im Grub Bootloader, update grub und reboot, dann
-sudo brutefir config, sofort viele underflows, läuft überhaupt nicht vernüftig
-taskset -c 2(0,1,3) brutefir config, leider noch nicht fehlerfrei, aber zumindest mal nicht sofort einen Abbruch, aber immer wieder mit underflows dazwischen direkt nach dem Starten von Brutefir, dann nach ca. 10 sec. fängt es an zu funktionieren (wie lange kann ich nur über einen Langzeittest rausfinden)
-sudo nice -n -20 taskset -c 2(0,1,3) brutefir config, eher wieder schlechter
-sudo nice -n -20 brutefir config, bringt gar nichts

Ich habe dann noch bissle anderweitig rumprobiert:
Aus meiner Sicht läuft es am besten wenn das Bios default ist,
-also mit Boostmodes, Hyperthread aktiv und mit allem was geht
-Grub: intel_idle.max_cstate=0 processor.max_cstate=0 idle=poll intel_pstate=disable
und mit
-taskset -c 2(und auch 0,1,3) brutefir config, und vor allem ohne nice -n -20 (auch andere prios haben -10 haben keine Veränderung gebracht.
Was auffällig war mit taskset, meist hat -c 3 sofort zu den Fehlern geführt

Irgendwie kann ich da kein richtiges Muster erkennen, vor allem habe ich das Gefühl, dass ich null Ahnung habe was da im Linux passiert, alles bringt ein bisschen was, aber nichts bringt sofort richtigen Erfolg, so dass man erkennen kann - das war es nun.

Irgendwie müsste man die Einzellschritte überprüfen, was da mit Brutefir passiert, also so einen Art debuggiung

Wie würdest Du weiter vorgehen?

Viele Grüße,
Georg Müller
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin Georg,

da sind zu viele Variablen. Fangen wir mal an mit:
  • Welche CPU hast du?
  • Welchen Kernel setzt du ein? Dazu einfach "uname -r" aufrufen.
  • Wie sieht die Prozessliste aus während brutefir mit Aussetzern läuft, wenn du "top" aufrufst? Besser noch "htop" installieren und aufrufen.
  • Woher kommt dein Input für brutefir und wohin schreibt brutefir?
Dann würde ich alle Änderungen im BIOS und im Linux (außer den RT Kernel, den bitte behalten) erst einmal zurücksetzen, und schrittweise von vorn anfangen -- mit einer "top"/"htop" Ausgabe während brutefir aktiv ist -- idealerweise während dropouts passieren.

Grüße,
Andree
Bild
fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Beitrag von fftransformation »

Hallo Andree,

ja dann werde ich das mal durchspielen, eventuell bringen uns die weiteren Erkenntnisse dann auf eine Idee.

Ich versuche auch mal den CPU scaling governor auf performance zu stellen, eventuell kann das in Verbindung mit festlegen des CPU Kerns via taskset
das Problem lösen, dann könnte man sich die Analyse sparen, oder zumindest bringt das eventuell weitere Erkenntnisse.

Brutefir kann kein logfile schreiben -ich habe zumindest nichts gefunden- , oder doch?

Grüße,
Georg
Bild
fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Beitrag von fftransformation »

Hallo Andree,

leider hat der Modus Performance auch nichts gebracht auch nicht in Verbindung mit taskset.
Irgendwie bringt nur die Einstellung im grub was.
Es deutet also schon darauf hin, dass es wirklich was mit den modulieren der Taktrate zu tun haben könnte.
Ebenso mit dem über die Kerne verteilen von der Faltlast, wie mit das Verhalten mit taskset zeigt.
Eventuell könnte shared memory in Brutefir noch was sein, verstand ich aber überhaupt nicht.


Was mir in dem Zuge noch eingefallen ist, Brutefir kann man ja die Prozesse vorgeben, auch das habe ich einmal gemacht, mit gleichem Verhalten.
Ebenso ist das Verhalten gleich zu mit taskset, wenn ich alle in Brutefir auf einen Kern lege. - nur mit weniger Rechenleistung in htop erkennbar.

Wenn man in Brutefir die Prozesse festlegt, sollten ja alle die auf einem Prozessorkern liegen, die miteinander vernetzt sind. - so stehts in der Brutefir Doku.

In Moment habe ich ja nur Inputs die ich doppelt verwende für Hochtöner und Mitteltöner, diese habe ich mal einem Kern zugewiesen.
Dem Input und Output Prozess kann ich ja nicht wo explizit zuweisen, falls das relevant wäre.
Und dann gibt es ja auch noch was mit Shared Memory, ich meine bei EQ Sachen, das verstehe ich aber auch nicht.

Zu deinen Fragen:

1. Kernel 6.1.0-16-rt-amd64
2. Intel Core i3-9100F (LGA
1151, 3.60 GHz, 4-Core)
3. leider absolut keine Veränderung bei Abbruch oder Betrieb, die Brutefir Prozesse sind immer mal in „S“ oder „R“ wechselnd.
4. Delta 1010 soundkarte Input und Output direkt mit den Filtern konfiguriert, keine Verknüpfung, aber manchen Input verwende ich 2x, wie schon oben geschrieben für HT und MT.

Ich vermute fast, dass das ein 3-Fach Fehler sein könnte, auch in Verbindung mit der Brutefir Konfiguration

Grüße Georg
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin,

bitte teile Screenshots von der htop Ausgabe. Bitte teile deine brutefir config, ich hoffe daran erkennt man auch wie du deine Soundkarte einsetzt. Du gehst analog Stereo über die Karte zum Faltungsrechner rein und analog Mehrkanal raus? Wäre gut, wenn du das auch nochmal darstellst.

Grüße,
Andree
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moin nochmal,

welche brutefir Version nutzt du?

Grüße,
Andree
Bild
Buschel
Aktiver Hörer
Beiträge: 1036
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Moni zum dritten,

nach Lesen von diversen alten Posts habe ich ein paar mehr Fragen und Anregungen:
  1. Wichtig: Siehst du nach dem Starten von brutefir eine Ausgabe wie "Realtime priority 3 set for input process (pid 2142)" (sollte mehrfach gezeigt werden). Wenn nicht, bitte brutefir als superuser starten mit "sudo brutefir bla-bla". Das kann den wesentlichen Unterschied machen.
  2. Laufen andere Audioframeworks wie pulseaudio auf deinem System mit?
  3. Mit welcher Samplingfrequenz läuft deine Soundkartenhardware? Dazu mal "cat /proc/asound/card2/pcm0p/sub0/hw_params" und "cat /proc/asound/card2/pcm0c/sub0/hw_params" auslesen während brutefir läuft. Du musst allerdings die für dich richtige Karte (im Beispiel "card2") und Kanäle (im Beispiel "pcm0") einsetzen. Die Endung "p" und "c" bei den Kanälen steht für playback (Wiedergabe) und capture (Aufnahme).
Grüße,
Andree
Bild
fftransformation
Aktiver Hörer
Beiträge: 81
Registriert: 30.10.2012, 19:09
Wohnort: nähe Karlsruhe/ Landau

Beitrag von fftransformation »

Hallo Andree,

hier die gewünschten Screenshots:

mit Taskset
taskset -c 2 ohne Fehler.jpg
taskset -c 2 ohne Fehler.jpg (196.43 KiB) 227 mal betrachtet
ohne Fehler
ohne Fehler.jpg
ohne Fehler.jpg (189.39 KiB) 227 mal betrachtet
mit Fehler
mit Fehler.jpg
mit Fehler.jpg (195.47 KiB) 227 mal betrachtet
Energieeinstellungen
Bild3.png
Bild3.png (91.96 KiB) 227 mal betrachtet
Bild2.png
Bild2.png (121.07 KiB) 227 mal betrachtet
Bild1.png
Bild1.png (97.17 KiB) 227 mal betrachtet
Konfig, hier wird in moment nur Filterset 1 getestet, der Rest ist noch Datenmüll:

Code: Alles auswählen

## MAIN GENERAL SETTINGS ##								
								
float_bits: 64;							# internal floating point precision		
sampling_rate: 48000;						# 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: true;						# allow use of input poll mode			
modules_path: "/usr/lib/brutefir";				# extra path where to find BruteFIR modules				
monitor_rate: false;						# monitor sample rate		
powersave: false;						# pause filtering when input is zero		
lock_memory: true;						# try to lock memory if realtime prio is set		
convolver_config: "/home/ui/.brutefir_convolver";		# location of convolver config file						
#"sdf_length: 0;"						# subsample filter half length in samples		
#"benchmark: false;"						# start in benchmark mode (can only be used in main config file)>;"		
#"safety_limit: 0;"						# if non-zero max dB in output before aborting>;"		
								
								
## LOGIC ##								
								
logic: "cli" { port: 3000; };								
		



						
## COEFF Set_0 ##
						
#subwooferl								
coeff "lswcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor1L48.dbl";							
	format: "FLOAT64_LE";							
};
#subwooferr							
coeff "rswcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor1R48.dbl";							
	format: "FLOAT64_LE";							
};





#links																
coeff "lmtcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor2L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "lhtcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor3L48.dbl";							
	format: "FLOAT64_LE";							
};
#rechts															
coeff "rmtcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor2R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "rhtcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor3R48.dbl";							
	format: "FLOAT64_LE";							
};





#center								
coeff "cmtcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor4L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "chtcoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor5L48.dbl";							
	format: "FLOAT64_LE";							
};						
								
	



#surroundl							
coeff "lscoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor6L48.dbl";							
	format: "FLOAT64_LE";													
};		
#sourroundr								
coeff "rscoeff" {								
	filename: "/media/conffltr/filter/48/lp/Cor7R48.dbl";							
	format: "FLOAT64_LE";							
};



								
## die Restlichen Filtersätze müssen noch angepasst werden!!!!!   COEFF Set_1 ##								
#links								
coeff "l1coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor1L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l2coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor2L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l3coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor3L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l4coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor4L48.dbl";							
	format: "FLOAT64_LE";							
};															
								
#rechts								
coeff "r1coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor1R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r2coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor2R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r3coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor3R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r4coeff_1" {								
	filename: "/media/conffltr/filter/48/lp_1/Cor4R48.dbl";							
	format: "FLOAT64_LE";							
};							
								
## COEFF Set_2 ##								
#links								
coeff "l1coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor1L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l2coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor2L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l3coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor3L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l4coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor4L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
#rechts								
coeff "r1coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor1R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r2coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor2R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r3coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor3R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r4coeff_2" {								
	filename: "/media/conffltr/filter/48/lp_2/Cor4R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
								
## COEFF Set_3 ##								
#links								
coeff "l1coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor1L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l2coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor2L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l3coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor3L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "l4coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor4L48.dbl";							
	format: "FLOAT64_LE";							
};								
								
#rechts								
coeff "r1coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor1R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r2coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor2R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r3coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor3R48.dbl";							
	format: "FLOAT64_LE";							
};								
								
coeff "r4coeff_3" {								
	filename: "/media/conffltr/filter/48/lp_3/Cor4R48.dbl";							
	format: "FLOAT64_LE";							
};


							
## INPUT analog								
								
input "i_1", "i_2", "i_3", "i_4", "i_5", "i_6", "i_7", "i_8", "i_9", "i_10" {								
	device: "alsa" { device: "hw:M1010"; ignore_xrun: true; link: false;};							
	sample: "S32_LE";							
	channels: 12/0,1,2,3,4,5,6,7,8,9;							
};								
								
## OUTPUT analog								
								
output "o_1", "o_2", "o_3", "o_4", "o_5", "o_6", "o_7", "o_8", "o_9", "o_10" {								
	device: "alsa" { device: "hw:M1010"; ignore_xrun: true; link: false;};							
	sample: "S32_LE";							
	channels: 10/0,1,2,3,4,5,6,7,8,9;							
	delay: 0,0,0,0,0,0,0,0,0,0;							
	dither: true;							
};								
								
## FILTERS ##							
filter "lswfilter" {								
	from_inputs: "i_1";							
	to_outputs: "o_9";							
	coeff: "lswcoeff";							
};								
								
filter "rswfilter" {								
	from_inputs: "i_1";							
	to_outputs: "o_10";							
	coeff: "rswcoeff";							
};								
								
filter "lmtfilter" {								
	from_inputs: "i_2";							
	to_outputs: "o_1";							
	coeff: "lmtcoeff";							
};								
								
filter "lhtfilter" {								
	from_inputs: "i_2";							
	to_outputs: "o_2";							
	coeff: "lhtcoeff";							
};								
								
filter "rmtfilter" {								
	from_inputs: "i_3";							
	to_outputs: "o_3";							
	coeff: "rmtcoeff";							
};								
													
filter "rhtfilter" {								
	from_inputs: "i_3";							
	to_outputs: "o_4";							
	coeff: "rhtcoeff";							
};								
								
filter "cmtfilter" {								
	from_inputs: "i_4";							
	to_outputs: "o_5";							
	coeff: "cmtcoeff";							
};								
								
filter "chtfilter" {								
	from_inputs: "i_4";							
	to_outputs: "o_6";							
	coeff: "chtcoeff";							
};								
								
filter "lsfilter" {								
	from_inputs: "i_5";							
	to_outputs: "o_7";							
	coeff: "lscoeff";							
};								
								
filter "rsfilter" {								
	from_inputs: "i_6";							
	to_outputs: "o_8";							
	coeff: "rscoeff";							
};								

Zu deinen Fragen:
-Ja genau Analog rein und Analog raus, ganz einfach über eine Soundkarte
-Brutefir Version 1.0o
1. ja sehe ich, ich starte immer mit sudo wegen der Realtimeprio
2. nein, das ist nur einfach Installation von Debian, ohne irgend was, zumindest wüsste ich nicht dass das mit dabei ist
3. bin ich nicht mehr dazu gekommen, ich liefere aber nach..

Grüße Georg
Bild
Antworten