Brutefir - Ausfall wegen Energiesparoptionen Linux
Moin,
Macht es evtl. Sinn eigene alsa-devices für Input und Output zu definieren, um die Puffergrößen gezielt setzen zu können?
Grüße,
Andree
Sieht du in der config auch erstmal kein Problem? Bis auf das Erlauben vom poll-Mode, das aber keine von den berichteten Auffälligkeiten zur Folge haben sollte, sieht das für mich ok aus. Die Prozessprioritäten kann man zwar noch höher drehen, aber die sind eigentlich schon hoch genug.
Macht es evtl. Sinn eigene alsa-devices für Input und Output zu definieren, um die Puffergrößen gezielt setzen zu können?
Grüße,
Andree
-
- Aktiver Hörer
- Beiträge: 80
- Registriert: 30.10.2012, 19:09
- Wohnort: nähe Karlsruhe/ Landau
Hallo Zusammen,
Ich hab für mich noch komische Dinge in der Konfig, ob die ein Problem sind weiß ich nicht:
Brutefir ist auf 64Bit konfiguriert, Filter sind auch 64Bit und die Soundkarte liefert nur mit 32Bit.
Was meint ihr damit? :
Und was sagt ihr hierzu? :
Ich hab für mich noch komische Dinge in der Konfig, ob die ein Problem sind weiß ich nicht:
Brutefir ist auf 64Bit konfiguriert, Filter sind auch 64Bit und die Soundkarte liefert nur mit 32Bit.
Was meint ihr damit? :
Und was sagt ihr hierzu? :
Grüße Georgfftransformation hat geschrieben: ↑11.01.2025, 07:34 Was mir in dem Zuge noch eingefallen ist, Brutefir kann man ja die Prozesse vorgeben.
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.
Moin,
Grüße,
Andree
Wenn du "float_bits: 64" meinst, ist das die interne Rechengenauigkeit. Die hat nichts mit der Soundkarte zu tun. Alles gut.fftransformation hat geschrieben: ↑11.01.2025, 21:33 Ich hab für mich noch komische Dinge in der Konfig, ob die ein Problem sind weiß ich nicht:
Brutefir ist auf 64Bit konfiguriert, Filter sind auch 64Bit und die Soundkarte liefert nur mit 32Bit.
Man kann in alsa eigene devices definieren und dann auf diese anstatt auf die Hardware zugreifen. Hier gibt es ein paar Beispiele (ein device fängt mit "pcm." an), bei denen auch Puffergrößen gesetzt werden: viewtopic.php?t=6377. Aber das würde ich vorerst nicht angehen, kann eine Menge Fummelei werden.
Ich verstehe die Frage möglicherweise nicht. Ich würde brutefir nur mit entsprechender Priorität (die kannst du noch weiter anheben, siehe z.B. viewtopic.php?p=183703&hilit=taskset#p183703) und Affinität (= taskset) starten und gut ist. brutefir started dann seine Prozesse auf dem festgelegten Core mit der entsprechenden relativen Priorität (= relativ zur Priorität, mit der brutefir gestartet wurde).
Grüße,
Andree
-
- Aktiver Hörer
- Beiträge: 80
- Registriert: 30.10.2012, 19:09
- Wohnort: nähe Karlsruhe/ Landau
Hi,
„process: 1;“
filter "right speaker cross path" {
inputs: "left"/6.0;
outputs: "stereo dipole right";
process: 1;
coeff: 1;
};
Hier kann man die Prozessorkerne vorgeben, aber wenn man die Filter verkettet, dann sollten die auf einem Kern liegen.
Eventuell ist da was wenn Ton zwischen den prozessorkernen hin und her verschoben wird, wenn man Brutefir die Lastverteilung automatisch machen lässt.
Und das hier noch, „shared_mem“
## COEFF DEFAULTS ##
coeff {
format: "text"; # file format
attenuation: 0.0; # attenuation in dB
blocks: -1; # how long in blocks
skip: 0; # how many bytes to skip
shared_mem: false; # allocate in shared memory
};
Das Fehlerbild ist nich richtig konstant, wenn Brutefir gerade läuft, ich den beende und gleich wieder starte, kann es sein, dass ich den Fehler provozieren kann. - wie wenn man sagt da ist noch was im ram - sehr komisch.
Was mich wundert, dass niemand solche Probleme in Verbindung mit Brutefir berichtet. Bei allen scheint es zu laufen.
Grüße Georg
Ich meinte das hier von der Brutefirconfig
„process: 1;“
filter "right speaker cross path" {
inputs: "left"/6.0;
outputs: "stereo dipole right";
process: 1;
coeff: 1;
};
Hier kann man die Prozessorkerne vorgeben, aber wenn man die Filter verkettet, dann sollten die auf einem Kern liegen.
Eventuell ist da was wenn Ton zwischen den prozessorkernen hin und her verschoben wird, wenn man Brutefir die Lastverteilung automatisch machen lässt.
Und das hier noch, „shared_mem“
## COEFF DEFAULTS ##
coeff {
format: "text"; # file format
attenuation: 0.0; # attenuation in dB
blocks: -1; # how long in blocks
skip: 0; # how many bytes to skip
shared_mem: false; # allocate in shared memory
};
Das Fehlerbild ist nich richtig konstant, wenn Brutefir gerade läuft, ich den beende und gleich wieder starte, kann es sein, dass ich den Fehler provozieren kann. - wie wenn man sagt da ist noch was im ram - sehr komisch.
Was mich wundert, dass niemand solche Probleme in Verbindung mit Brutefir berichtet. Bei allen scheint es zu laufen.
Grüße Georg
Moin,
Eine Frage zu deiner Soundkarte: Lese ich richtig, dass die Karte analog sowie SPDIF I/O hat? Nutzt du gleichzeitig die analogen und SPDIF Ein- und Ausgänge? Wenn ja, kannst du mal probehalber nur die analogen nutzen und die anderen aus deiner brutefir config entfernen?
Grüße,
Andree
Der Parameter bündelt Filter in einem Prozess, nicht auf einem Kern. Damit kannst du dann offenbar "per Hand" die Lastenverteilung optimieren, habe ich so nicht in Betrieb, habe aber auch nur ein Stereo-System ohne Weiche. In deiner config sehe ich keinen solchen Parameter. Ich glaube nicht, dass du damit dein Problem lösen wirst.fftransformation hat geschrieben: ↑11.01.2025, 22:30 Ich meinte das hier von der Brutefirconfig
„process: 1;“
[...]
Hier kann man die Prozessorkerne vorgeben, aber wenn man die Filter verkettet, dann sollten die auf einem Kern liegen.
Da geht es nur um die Koeffizienten, das darf keine von dir beobachteten Auswirkung haben.
Das hört sich für mich eher nach timing an, also genau das wonach wir gerade schauen.fftransformation hat geschrieben: ↑11.01.2025, 22:30 Das Fehlerbild ist nich richtig konstant, wenn Brutefir gerade läuft, ich den beende und gleich wieder starte, kann es sein, dass ich den Fehler provozieren kann. - wie wenn man sagt da ist noch was im ram - sehr komisch.
Naja, selbst hier im Forum gibt es dazu viele Threads und Posts. Aber die Lösung ist nicht immer dieselbe.fftransformation hat geschrieben: ↑11.01.2025, 22:30 Was mich wundert, dass niemand solche Probleme in Verbindung mit Brutefir berichtet. Bei allen scheint es zu laufen.
Eine Frage zu deiner Soundkarte: Lese ich richtig, dass die Karte analog sowie SPDIF I/O hat? Nutzt du gleichzeitig die analogen und SPDIF Ein- und Ausgänge? Wenn ja, kannst du mal probehalber nur die analogen nutzen und die anderen aus deiner brutefir config entfernen?
Grüße,
Andree
Moin,
wieviel Kanäle hat deine Soundkarte?
https://images.thomann.de/pics/prod/midiman_1010.pdf
Wenn es die Karte sein soll, dann 10 input und 10 output
Ich sehe in deine Config eine Diskrepanz
## 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;
};
VG
wieviel Kanäle hat deine Soundkarte?
https://images.thomann.de/pics/prod/midiman_1010.pdf
Wenn es die Karte sein soll, dann 10 input und 10 output
Ich sehe in deine Config eine Diskrepanz
## 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;
};
VG
-
- Aktiver Hörer
- Beiträge: 80
- Registriert: 30.10.2012, 19:09
- Wohnort: nähe Karlsruhe/ Landau
Guten Morgen Zusammen,
erst einmal danke für das sich rein denken und die Anregungen und Antworten!
Ich habe mal input und output auf 10 Kanäle gestellt, dann startet brutefir nicht mehr, ich vermute die Karte hat 2 Clockeingänge, diese werden wohl dann den Input auf 12 erhöhen
Langsam glaube ich, dass das nichts mit Prio zu tun hat, ich habe mal auf echtzeitprio gesetzt: sudo chrt -f 99 brutefir /config
Brutefir macht das ja auch am Anfang von selbst und versucht diese aufrecht zu erhalten.
Der Prozessor läuft auch auf der höchsten Stufe, zumindest soweit ich das beurteilen kann, weil intel_idle deaktiviert ist.
Somit bleibt für mich eigentlich nur noch ein Treiberproblem oder irgendeine Inkompatibilität, wobei gerade diese alte Soundkarte über PCI angeschlossen am ehesten funktionieren sollte.
Kann ich irgendwie die überprüfen, wie hoch die buffer mit Daten befüllt werden? So dass ich auch im Fehlerfall mir das mal anschauen könnte?
Grüße Georg
erst einmal danke für das sich rein denken und die Anregungen und Antworten!
Im funktionalen Fall und Fehlerfall immer gleich:Buschel hat geschrieben: ↑11.01.2025, 09:57 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).
Ja es ist die Karte wie bei Thoman
Ich habe mal input und output auf 10 Kanäle gestellt, dann startet brutefir nicht mehr, ich vermute die Karte hat 2 Clockeingänge, diese werden wohl dann den Input auf 12 erhöhen
habe ich gerade gemacht - leider keine Verbesserung
Langsam glaube ich, dass das nichts mit Prio zu tun hat, ich habe mal auf echtzeitprio gesetzt: sudo chrt -f 99 brutefir /config
Brutefir macht das ja auch am Anfang von selbst und versucht diese aufrecht zu erhalten.
Der Prozessor läuft auch auf der höchsten Stufe, zumindest soweit ich das beurteilen kann, weil intel_idle deaktiviert ist.
Somit bleibt für mich eigentlich nur noch ein Treiberproblem oder irgendeine Inkompatibilität, wobei gerade diese alte Soundkarte über PCI angeschlossen am ehesten funktionieren sollte.
Kann ich irgendwie die überprüfen, wie hoch die buffer mit Daten befüllt werden? So dass ich auch im Fehlerfall mir das mal anschauen könnte?
Grüße Georg
Moin,
Danke für die Fotos. Die 12 Kanäle sieht man auch bei der Ausgabe der hw_params, das scheint laut Reviews, die ich im Netz gefunden habe, ein Stereo Input als "Monitor" zu sein. Das passt so.
Kannst du per aplay oder über ein anderes Programm mal eine Aufnahme und eine Wiedergabe mit 48 kHz starten und dann wieder hw_params auslesen? Mich interessiert, ob hier andere Werte für buffer / period genutzt werden. Ich habe leider nur wenig alte Daten aus meinen Setups, glaube aber, dass üblicherweise buffer size nicht nur 2x period ist.
Als Hinweis: Bei meinem Setup macht "sox" das also I/O und brutefir ist per stdio angebunden. Das hat für die Puffergrößen vermutlich ähnliche Auswirkung wie die Nutzung von "jack".
Grüße,
Andree
Danke für die Fotos. Die 12 Kanäle sieht man auch bei der Ausgabe der hw_params, das scheint laut Reviews, die ich im Netz gefunden habe, ein Stereo Input als "Monitor" zu sein. Das passt so.
Kannst du per aplay oder über ein anderes Programm mal eine Aufnahme und eine Wiedergabe mit 48 kHz starten und dann wieder hw_params auslesen? Mich interessiert, ob hier andere Werte für buffer / period genutzt werden. Ich habe leider nur wenig alte Daten aus meinen Setups, glaube aber, dass üblicherweise buffer size nicht nur 2x period ist.
Ja, das geht. Aber das bringt dich nicht weiter, weil du nur sehen wirst, dass im Fehlerfall nicht genug Daten da sind. Das ist ja gerade der underflow. Lass uns lieber schauen wie wir deine Puffergrößen im alsa device anders gestalten können.fftransformation hat geschrieben: ↑12.01.2025, 08:33 Kann ich irgendwie die überprüfen, wie hoch die buffer mit Daten befüllt werden? So dass ich auch im Fehlerfall mir das mal anschauen könnte?
Als Hinweis: Bei meinem Setup macht "sox" das also I/O und brutefir ist per stdio angebunden. Das hat für die Puffergrößen vermutlich ähnliche Auswirkung wie die Nutzung von "jack".
Grüße,
Andree
Guten Morgen,
Die Clocks Ein/Ausgänge sind weder recording noch play. Die Karte hat 10 und 10, deshalb heiss sie auch so.
Ändere auf 10, vielleicht sogar 8, es können auch 10 und 12 nur emulierte sein aber Hardware nur 8 x 8, wie meiste ADAT. Wahrscheinlich mit Software können SPDIF und MIDI Kanäle abwechselnd dazu benutzt werden
Ich würde ausprobieren mit 10 und 12, aber zuweisen nur jeweils 0;1;2;3;4;5;6;7
Wenn nicht läuft, dann nur die letzten 8: 2;3;4;5;6;7;8;9 und 4;5;6;7;8;9;10;11
Mann mus herausfinden nur physikalisch vorhanden. Ich habe RME HDSP lange Zeit für defekt gehalten, da die 12 Kanäle wurden bei ALSA und Jack korrekt angezeigt aber kam kein Ton raus, bis ich den HDSP Mixer installiert habe vomit emuliertes mit physikalisch vorhandenem verbunden war
VG, Stanislaw
Die Clocks Ein/Ausgänge sind weder recording noch play. Die Karte hat 10 und 10, deshalb heiss sie auch so.
Ändere auf 10, vielleicht sogar 8, es können auch 10 und 12 nur emulierte sein aber Hardware nur 8 x 8, wie meiste ADAT. Wahrscheinlich mit Software können SPDIF und MIDI Kanäle abwechselnd dazu benutzt werden
Ich würde ausprobieren mit 10 und 12, aber zuweisen nur jeweils 0;1;2;3;4;5;6;7
Wenn nicht läuft, dann nur die letzten 8: 2;3;4;5;6;7;8;9 und 4;5;6;7;8;9;10;11
Mann mus herausfinden nur physikalisch vorhanden. Ich habe RME HDSP lange Zeit für defekt gehalten, da die 12 Kanäle wurden bei ALSA und Jack korrekt angezeigt aber kam kein Ton raus, bis ich den HDSP Mixer installiert habe vomit emuliertes mit physikalisch vorhandenem verbunden war
VG, Stanislaw
-
- Aktiver Hörer
- Beiträge: 80
- Registriert: 30.10.2012, 19:09
- Wohnort: nähe Karlsruhe/ Landau
Hallo Zusammen,
Ich habe das auch mal mit niedrigeren Samplingraten probiert aber auch die gehen nicht, das einzige was geht ist -r 8000.
Das Audiofile wo mit Fehlern erzeugt wurde hört sich grauenvoll an, total verzerrt. Wenn ich mit dem amixer am output statt quelle PCM einen inputchannel einstelle, dann kommt der ton sauber raus, also die Soundkarte funktioniert an sich, nur der Ton kommt nicht sauber im Linux an.
Leider habe ich nicht probiert das einmal mit sudo auszuprobieren, ich meine da war was mit Audioberechtigungen bei Linux...
Das Verhalten mit arecord kenne ich so nicht als ich früher mal mit den Inputs rumprobiert habe, aber ich habe auch später nochmal ein neueres Linux genommen und auch somit einen anderen rt-patch. -Eventuell ist da was faul.
amixer contents > 1.txt:
Bevor ich brutefir starte setze ich die folgenden Parameter immer:
Ich denke man sollte das mit arecord erst einmal zum laufen bekommen, ich habe zwar keine Idee wie aber Ihr eventuell.
Achso, ich habe auch mit Buffer 1000000 mal getestet, den kann man bei arecord ja mitgeben - verhalten anders, die Fehlermeldungen kommen schneller hintereinander, aber sonst leider gleich.
Grüße Georg
Das tut nicht! Ich bekomme zwar ein Audiofile raus, aber es werden permanent Fehlermeldungen ausgegeben "Überlauf!!!" und ne ms Zeit dahinter.
Ich habe das auch mal mit niedrigeren Samplingraten probiert aber auch die gehen nicht, das einzige was geht ist -r 8000.
Das Audiofile wo mit Fehlern erzeugt wurde hört sich grauenvoll an, total verzerrt. Wenn ich mit dem amixer am output statt quelle PCM einen inputchannel einstelle, dann kommt der ton sauber raus, also die Soundkarte funktioniert an sich, nur der Ton kommt nicht sauber im Linux an.
Leider habe ich nicht probiert das einmal mit sudo auszuprobieren, ich meine da war was mit Audioberechtigungen bei Linux...
Das Verhalten mit arecord kenne ich so nicht als ich früher mal mit den Inputs rumprobiert habe, aber ich habe auch später nochmal ein neueres Linux genommen und auch somit einen anderen rt-patch. -Eventuell ist da was faul.
Auch das habe ich alles mal probiert, das tut ebenso nicht. Ich habe mal die I/O neu (hatte ich früher schon mal mit dem älteren Linux gemacht) ausgeben lassen:bastelixx hat geschrieben: ↑12.01.2025, 11:13 Ändere auf 10, vielleicht sogar 8, es können auch 10 und 12 nur emulierte sein aber Hardware nur 8 x 8, wie meiste ADAT. Wahrscheinlich mit Software können SPDIF und MIDI Kanäle abwechselnd dazu benutzt werden
Ich würde ausprobieren mit 10 und 12, aber zuweisen nur jeweils 0;1;2;3;4;5;6;7
Wenn nicht läuft, dann nur die letzten 8: 2;3;4;5;6;7;8;9 und 4;5;6;7;8;9;10;11
amixer contents > 1.txt:
Code: Alles auswählen
numid=41,iface=CARD,name='ICE1712 EEPROM'
; type=BYTES,access=r-------,values=52
: values=0xd6,0x30,0x14,0x12,0x1d,0x01,0x1f,0x80,0x01,0x03,0x22,0xd0,0xdd,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xdd,0x00,0x00,0x00
numid=29,iface=MIXER,name='IEC958 Multi Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=30,iface=MIXER,name='IEC958 Multi Capture Switch',index=1
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=39,iface=MIXER,name='IEC958 Multi Capture Volume'
; type=INTEGER,access=rw------,values=2,min=0,max=96,step=0
: values=0,0
numid=40,iface=MIXER,name='IEC958 Multi Capture Volume',index=1
; type=INTEGER,access=rw------,values=2,min=0,max=96,step=0
: values=0,0
numid=54,iface=MIXER,name='IEC958 Playback Route'
; type=ENUMERATED,access=rw------,values=1,items=12
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
; Item #11 'Digital Mixer'
: values=0
numid=55,iface=MIXER,name='IEC958 Playback Route',index=1
; type=ENUMERATED,access=rw------,values=1,items=12
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
; Item #11 'Digital Mixer'
: values=0
numid=64,iface=MIXER,name='Delta IEC958 Input Status'
; type=BOOLEAN,access=r--v----,values=1
: values=off
numid=21,iface=MIXER,name='H/W Multi Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=22,iface=MIXER,name='H/W Multi Capture Switch',index=1
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=23,iface=MIXER,name='H/W Multi Capture Switch',index=2
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=24,iface=MIXER,name='H/W Multi Capture Switch',index=3
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=25,iface=MIXER,name='H/W Multi Capture Switch',index=4
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=26,iface=MIXER,name='H/W Multi Capture Switch',index=5
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=27,iface=MIXER,name='H/W Multi Capture Switch',index=6
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=28,iface=MIXER,name='H/W Multi Capture Switch',index=7
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=31,iface=MIXER,name='H/W Multi Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=32,iface=MIXER,name='H/W Multi Capture Volume',index=1
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=33,iface=MIXER,name='H/W Multi Capture Volume',index=2
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=34,iface=MIXER,name='H/W Multi Capture Volume',index=3
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=35,iface=MIXER,name='H/W Multi Capture Volume',index=4
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=36,iface=MIXER,name='H/W Multi Capture Volume',index=5
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=37,iface=MIXER,name='H/W Multi Capture Volume',index=6
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=38,iface=MIXER,name='H/W Multi Capture Volume',index=7
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=46,iface=MIXER,name='H/W Playback Route'
; type=ENUMERATED,access=rw------,values=1,items=12
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
; Item #11 'Digital Mixer'
: values=0
numid=47,iface=MIXER,name='H/W Playback Route',index=1
; type=ENUMERATED,access=rw------,values=1,items=12
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
; Item #11 'Digital Mixer'
: values=0
numid=48,iface=MIXER,name='H/W Playback Route',index=2
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
: values=0
numid=49,iface=MIXER,name='H/W Playback Route',index=3
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
: values=0
numid=50,iface=MIXER,name='H/W Playback Route',index=4
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
: values=0
numid=51,iface=MIXER,name='H/W Playback Route',index=5
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
: values=0
numid=52,iface=MIXER,name='H/W Playback Route',index=6
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
: values=0
numid=53,iface=MIXER,name='H/W Playback Route',index=7
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'PCM Out'
; Item #1 'H/W In 0'
; Item #2 'H/W In 1'
; Item #3 'H/W In 2'
; Item #4 'H/W In 3'
; Item #5 'H/W In 4'
; Item #6 'H/W In 5'
; Item #7 'H/W In 6'
; Item #8 'H/W In 7'
; Item #9 'IEC958 In L'
; Item #10 'IEC958 In R'
: values=0
numid=1,iface=MIXER,name='Multi Playback Switch'
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=2,iface=MIXER,name='Multi Playback Switch',index=1
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=3,iface=MIXER,name='Multi Playback Switch',index=2
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=4,iface=MIXER,name='Multi Playback Switch',index=3
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=5,iface=MIXER,name='Multi Playback Switch',index=4
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=6,iface=MIXER,name='Multi Playback Switch',index=5
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=7,iface=MIXER,name='Multi Playback Switch',index=6
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=8,iface=MIXER,name='Multi Playback Switch',index=7
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=9,iface=MIXER,name='Multi Playback Switch',index=8
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=10,iface=MIXER,name='Multi Playback Switch',index=9
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=11,iface=MIXER,name='Multi Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=12,iface=MIXER,name='Multi Playback Volume',index=1
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=13,iface=MIXER,name='Multi Playback Volume',index=2
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=14,iface=MIXER,name='Multi Playback Volume',index=3
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=15,iface=MIXER,name='Multi Playback Volume',index=4
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=16,iface=MIXER,name='Multi Playback Volume',index=5
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=17,iface=MIXER,name='Multi Playback Volume',index=6
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=18,iface=MIXER,name='Multi Playback Volume',index=7
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=19,iface=MIXER,name='Multi Playback Volume',index=8
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=20,iface=MIXER,name='Multi Playback Volume',index=9
; type=INTEGER,access=rw---R--,values=2,min=0,max=96,step=0
: values=0,0
| dBscale-min=-144.00dB,step=1.50dB,mute=0
numid=42,iface=MIXER,name='Multi Track Internal Clock'
; type=ENUMERATED,access=rw------,values=1,items=14
; Item #0 '8000'
; Item #1 '9600'
; Item #2 '11025'
; Item #3 '12000'
; Item #4 '16000'
; Item #5 '22050'
; Item #6 '24000'
; Item #7 '32000'
; Item #8 '44100'
; Item #9 '48000'
; Item #10 '64000'
; Item #11 '88200'
; Item #12 '96000'
; Item #13 'IEC958 Input'
: values=9
numid=43,iface=MIXER,name='Multi Track Internal Clock Default'
; type=ENUMERATED,access=rw------,values=1,items=13
; Item #0 '8000'
; Item #1 '9600'
; Item #2 '11025'
; Item #3 '12000'
; Item #4 '16000'
; Item #5 '22050'
; Item #6 '24000'
; Item #7 '32000'
; Item #8 '44100'
; Item #9 '48000'
; Item #10 '64000'
; Item #11 '88200'
; Item #12 '96000'
: values=9
numid=44,iface=MIXER,name='Multi Track Rate Locking'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=45,iface=MIXER,name='Multi Track Rate Reset'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=56,iface=MIXER,name='Multi Track Volume Rate'
; type=INTEGER,access=rw------,values=1,min=0,max=255,step=0
: values=0
numid=59,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r--v----,values=1
: values=on
numid=58,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=61,iface=PCM,name='IEC958 Playback Con Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0xff AES1=0xff AES2=0xff AES3=0xff]
numid=60,iface=PCM,name='IEC958 Playback Default'
; type=IEC958,access=rw------,values=1
: values=[AES0=0x00 AES1=0x00 AES2=0x00 AES3=0x00]
numid=62,iface=PCM,name='IEC958 Playback Pro Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0xff AES1=0xff AES2=0xff AES3=0xff]
numid=57,iface=PCM,name='Multi Track Peak'
; type=INTEGER,access=r--v----,values=22,min=0,max=255,step=0
: values=88,66,87,55,97,91,6,6,138,138,255,100,93,138,21,19,0,0,0,0,0,0
Code: Alles auswählen
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route' 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=1 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=2 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=3 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=4 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=5 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=6 0
amixer -D hw:M1010 cset iface=MIXER,name='H/W Playback Route',index=7 0
amixer -D hw:M1010 cset iface=MIXER,name='Multi Track Internal Clock' 9
amixer -D hw:M1010 cset iface=MIXER,name='Multi Track Internal Clock Default' 9
amixer -D hw:M1010 cset iface=MIXER,name='Multi Track Rate Locking' off
Achso, ich habe auch mit Buffer 1000000 mal getestet, den kann man bei arecord ja mitgeben - verhalten anders, die Fehlermeldungen kommen schneller hintereinander, aber sonst leider gleich.
Grüße Georg
Hallo Georg,
teste meine Variante aus
VG, Stanislaw
teste meine Variante aus
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: 1024,64; # 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: false; # 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";
bloks: -1;
shared_mem: false;
};
#subwooferr
coeff "rswcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor1R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#links
coeff "lmtcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor2L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "lhtcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor3L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#rechts
coeff "rmtcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor2R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "rhtcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor3R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#center
coeff "cmtcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor4L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "chtcoeff" {
filename: "/media/conffltr/filter/48/lp/Cor5L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#surroundl
coeff "lscoeff" {
filename: "/media/conffltr/filter/48/lp/Cor6L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#sourroundr
coeff "rscoeff" {
filename: "/media/conffltr/filter/48/lp/Cor7R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
## 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";
bloks: -1;
shared_mem: false;
};
coeff "l2coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor2L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l3coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor3L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l4coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor4L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#rechts
coeff "r1coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor1R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r2coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor2R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r3coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor3R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r4coeff_1" {
filename: "/media/conffltr/filter/48/lp_1/Cor4R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
## COEFF Set_2 ##
#links
coeff "l1coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor1L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l2coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor2L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l3coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor3L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l4coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor4L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#rechts
coeff "r1coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor1R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r2coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor2R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r3coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor3R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r4coeff_2" {
filename: "/media/conffltr/filter/48/lp_2/Cor4R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
## COEFF Set_3 ##
#links
coeff "l1coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor1L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l2coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor2L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l3coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor3L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "l4coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor4L48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
#rechts
coeff "r1coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor1R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r2coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor2R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r3coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor3R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
coeff "r4coeff_3" {
filename: "/media/conffltr/filter/48/lp_3/Cor4R48.dbl";
format: "FLOAT64_LE";
bloks: -1;
shared_mem: false;
};
## 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"; 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"; 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";
process: -1;
};
filter "rswfilter" {
from_inputs: "i_1";
to_outputs: "o_10";
coeff: "rswcoeff";
process: -1;
};
filter "lmtfilter" {
from_inputs: "i_2";
to_outputs: "o_1";
coeff: "lmtcoeff";
process: -1;
};
filter "lhtfilter" {
from_inputs: "i_2";
to_outputs: "o_2";
coeff: "lhtcoeff";
process: -1;
};
filter "rmtfilter" {
from_inputs: "i_3";
to_outputs: "o_3";
coeff: "rmtcoeff";
process: -1;
};
filter "rhtfilter" {
from_inputs: "i_3";
to_outputs: "o_4";
coeff: "rhtcoeff";
process: -1;
};
filter "cmtfilter" {
from_inputs: "i_4";
to_outputs: "o_5";
coeff: "cmtcoeff";
process: -1;
};
filter "chtfilter" {
from_inputs: "i_4";
to_outputs: "o_6";
coeff: "chtcoeff";
process: -1;
};
filter "lsfilter" {
from_inputs: "i_5";
to_outputs: "o_7";
coeff: "lscoeff";
process: -1;
};
filter "rsfilter" {
from_inputs: "i_6";
to_outputs: "o_8";
coeff: "rscoeff";
process: -1;
};
-
- Aktiver Hörer
- Beiträge: 80
- Registriert: 30.10.2012, 19:09
- Wohnort: nähe Karlsruhe/ Landau
Hallo Stanislaw,
du meinst der Fehler liegt in meiner brutefir-konfig und ich soll die von Dir modifizierte probieren.
-übrigens danke dafür!
Mir ist noch aufgefallen, dass Du bei den Filters nicht überall shared_mem: false; gesetzt hast, soll ich das noch ergänzen? -oder war das Absicht? Wenn ja musst Du mir das dann erklären.
Was halt schon komisch ist, dass arecord nicht tut und brutefir eigentlich schon, wenn die Software mal läuft.
Meist wenn brutefir abgeschmiert ist und man brutefir nochmal startet läuft die dann durch.
Grüße Georg
du meinst der Fehler liegt in meiner brutefir-konfig und ich soll die von Dir modifizierte probieren.
-übrigens danke dafür!
Mir ist noch aufgefallen, dass Du bei den Filters nicht überall shared_mem: false; gesetzt hast, soll ich das noch ergänzen? -oder war das Absicht? Wenn ja musst Du mir das dann erklären.
Was halt schon komisch ist, dass arecord nicht tut und brutefir eigentlich schon, wenn die Software mal läuft.
Meist wenn brutefir abgeschmiert ist und man brutefir nochmal startet läuft die dann durch.
Grüße Georg