Archiv verlassen und diese Seite im Standarddesign anzeigen : IIR-Filter unter Linux?
Hi,
ich habe mal eine Frage. Gibts es unter Linux ein Möglichkeit ein Signal mittels IIR-Filter zu bearbeiten? Für FIR-Filter gibt es ja einiges, aber wie schaut es mit IIR aus?
Ich habe folgende Idee:
Ich möchte mittels eines Thinclients (VIA Eden 800Mhz und USB-Soundkarte mit ALSA-Support) ein eingehendes Subwoofersignal vom AV-Receiver bearbeiten (Raumentzerrung, sowie Hoch/Tiefpass als IIR) und dann in Stereo ausgeben (zwei unabhängige Subs).
Unter Windows XP (auf einem 1Ghz VIA C7) und dem Frequency Allocator Light funktioniert dass ganze schon, ich möchte aber aufgrund des Speichers (CF-Card) und der geringen Geschwindigkeit des Thin Clients gerne ein minimales Linux laufen lassen.
Was mir wichtig wäre, ist dass die Anpassung der Entzerrung sehr flexibel und schnell erfolgen muss.
Ich weiß ich könnte auch einen MiniDSP kaufen, aber ich zum einen möchte ich gerne mal was mit Linux machen und zum anderen habe ich die Hardware schon da.
Vll. könnt ihr mir ja helfen.
Grüße
Martin
waterburn
22.02.2013, 09:00
Hallo Martin,
ich hab auch schon nach so etwas gesucht, aber leider keine fertige Lösung gefunden. Von daher wäre ich auch an einer Lösung interessiert. Was ich bisher gefunden habe ist folgendes:
https://ccrma.stanford.edu/~kuangzn/vst/biquad.html
https://github.com/vinniefalco/DSPFilters
http://www.linux-usb-daq.co.uk/howto2/filter/
http://portaudio.com/docs/v19-doxydocs/tutorial_start.html
Für einen findigen Programmierer, sollte zumindest eine Konsolenlösung kein Problem sein. Besonders der Dritte Linke scheint interessant zu sein. Leider bin ich kein besonders findiger Programmierer und von Linux hab ich noch weniger Ahnung. Aber vielleicht helfen dir die Links ja trotzdem weiter.
Gruß
waterburn
Edit: Hab grad noch was gefunden:
http://linux-sound.org/dsp.html
Vielleicht ist da ja bei, was wir suchen.
Noch ein link:
http://elinux.org/images/8/82/Elc2011_lorriaux.pdf
Violoncello
22.02.2013, 09:16
Es gibt da ja pure data:
http://puredata.info/
Ein sehr mächtiges Programm mit eigener graphischer Programmiersprache. Damit geht "alles": IIR, FIR und auch sonst was man so braucht.
Läuft bei mir derzeit testweise im Zusammenspiel mit JACK und liefert mir sehr überzeugende Ergebnisse.
Ist halt aufgrund der breiten Auslegung und der enormen Vielfalt "nicht ganz selbsterklärend" zu bedienen.
Aber da bin ich an einer Lösung dran, wenn (->falls) da jemals was Benutzbares rauskommt werd ich das vorstellen.
das wär wirklich toll.
bin zwar schon seit jahren linuxnutzer, aber eher der bequeme typ und autodidakt.
kommandozeilen sind nicht so mein ding.
hab z.b. im augenblick das problem, die kleine logilink zum laufen zu bringen - als soundkarte funktionierts passabel mit plug&play, aber wine scheint auch nicht mehr das zu sein was es mal war.
gruß reinhard
Hallo,
Warum nicht brutefir? Mit Filtern aus MaXO und REW?
Das funktioniert relativ einfach. (Ich glaube REW produziert sogar nur IIR und das geht trotzdem).
Gruß
Marcus.S
22.02.2013, 11:38
...Warum nicht brutefir?...
Hatte ich auch so im Kopf.
PD ist doch ein IDE oder habe ich das falsch im Kopf?
Violoncello
22.02.2013, 11:51
PD ist doch ein IDE oder habe ich das falsch im Kopf?
Nein, das ist schon richtig.
Der Witz daran ist aber, dass alles was man programmiert, in Echtzeit in die DSP-Kette eingefügt wird.
Ich bin da allerdings selber noch am Einarbeiten, weiß aber dass man damit ziemlich coole Sachen machen kann.
Z.B. gibts bei uns auf der Uni den IEM Cube (http://www.kug.ac.at/index.php?id=178&tx_kuglocations_pi1[raum_nr]=9682), der so weit ich weiß über PD gesteuert wird.
waterburn
22.02.2013, 14:03
Hallo,
Warum nicht brutefir? Mit Filtern aus MaXO und REW?
Das funktioniert relativ einfach. (Ich glaube REW produziert sogar nur IIR und das geht trotzdem).
Gruß
Es mag zwar sein, dass ich mich irre, aber meiner Meinung nach, kann BruteFIR kein IIR. Man kann mit minimalphasigen Filtern arbeiten, das hat aber nichts mit FIR oder IIR zu tun. Der Einsatz von minimalphasigen Filtern ermöglicht kürzere Latenzen, der numerische Aufwand bleibt aber der selbe. Wenn kürzere Latenzen das Ziel sind, kann man bei BruteFIR bleiben. Wenn man aber den Rechenaufwand verringern will muss man tatsächlich IIR Filter einsetzen.
Gruß
waterburn
Hallo waterburn,
da kannst du recht haben (ich vergess das immer wieder, was FIR/IIR mit minimal- und linearphasig zu tun haben). Also ich korrigiere mich dahingehend, dass brutefir das "Filter-Zeugs" verarbeiten kann, dass man mit dem REW erzeugen kann. Zusammen mit MaXO kann man, soweit ich die Anforderung verstehe, das realisieren was Samyk möchte. Oder andersrum. Wenn's mit mit dem FAL geklappt hat, geht's damit auch.
Gruß
The Alchemist
22.02.2013, 20:05
Man könnte gar über den FAL ein Dirac Impuls wiedergeben und aufnehmen und mit den so erzeugten Impulsen Brutefir füttern.
Dann könnte man sich mehrere Setups erstellen, die man dan über eine Fernbedienung bequem wechseln kann...
Alles einfacher als PD, denn die Konfiguration für brutefir braucht man nur einmal zu ertstellen.
Nimmt man ein Linux wie TinyCore, was komplett im RAM läuft, wird auch die CF Card kaum belastet.
PD ist aber bestimmt interessant :D
Wine und Sound sind Dinge die man besser nicht benutzt (meine Erfahrung); wenn man Windows Programme benutzen will sollte man besser bei Win bleiben.
( den Tip mein ich enrst und in keiner Form böse,abwertend oder sonst wie, genauso wie das mit dem Sampeln . Muss man ja in diesem Forum immer besser dazu schreiben)
http://esweep.berlios.de
Und ja, da muss noch einiges an Arbeit reingesteckt werden. Und ich habe es in der aktuellen Version nie unter Linux getestet, es geht aber unter Windows mit MinGW, also sollte es eigentlich auch unter Linux laufen. Abhängigkeiten sind Portaudio und, wenn gewünscht (ist empfohlen) Tcl > 8.5. Ganz wichtig: NICHT die vorkompilierten Pakete nehmen, sondern den Code aus dem CVS auschecken bzw. daily snapshots nehmen: http://cvs.berlios.de/cvstarballs/esweep-cvsroot.tar.gz
Wahrscheinlich wird erst mal nichts gehen und sich große Verzweiflung ausbreiten, also bitte Fragen stellen.
Das für diesen Zweck wohl geeignetste Programm befindet sich unter ./examples/tcl/xover Das ist eine GDE für IIR-Filter, mit der die erstellten Filter auch live getestet werden können. Bedienung bitte erfragen, muss ich selber erst immer wieder nachschauen.
Gruß
Jochen
Erst einmal vielen Danke für die zahlreichen Antworten. Ich werde aber leider erst am Donnerstag wieder Zeit finden alles zu sondieren, habe noch ein wichtige Klausur zu schreiben.
Ihr könnt aber ruhig weiter posten und Vorschläge machen.
Aber dass mit BruteFIR und IIR-Filterung habe ich auch schon gelesen. Die IIR-Filter werden also nur auf der FIR-Ebene "simuliert", das heißt, die Belastung des CPU ist ähnlich groß.
Aber die anderen Vorschläger, werde ich mir wie schon geschrieben, Ende nächster Woche in Ruhe anschauen.
Grüße
Martin
The Alchemist
23.02.2013, 11:17
Die Rechenleistung, die Brutefir benötigt ist abhängig von der Anzahl der Ein- und Ausgabe Kanäle. Auf einem PIII mit 850MHZ hab ich problemlos 2 Ein und 6 AusgabeKanäle laufen lassen.
Wenn ich deine Anforderung richtig vertstehe, brauchst Du nur 2 Ein und 4 Aus.
Wieviel Leistung die VIA Prozis haben kann ich nicht sagen, da ich noch nie einen hatte.
Bei den Linux Systemen ist das so eine Sache, je bequemer, desto höher die "Grundbelastung" des Systems.
Hallo,
auf dem angedachten System müsste BruteFIR problemlos laufen. Das ist so heftig optimiert, das braucht nicht viel Rechenleistung. Hatte mich auch überrascht.
Ich bin trotzdem immer dafür, statt schierer Rechenkraft ein wenig Cleverness zu benutzen, und da sind IIRs besonders bei der Bekämpfung von Raummoden einfach besser.
Gruß
Jochen
Matthias T.
04.03.2013, 23:57
Nabend Linuxianer und Tuxhausener,
ich möchte das Thema jetzt nicht kapern, aber Raumkorrektur beschäftigt mich auch gerade ein bisschen.
Mein aktuelles Setup ist ein ION Board (Intel Atom Dual Core mit einer Nvidia Grafik) auf dem ein minimal-Ubuntu mit XBMC läuft. Daran direkt angeschlossen ist ein altes Creative 5.1 Brüllwürfel-Plastik System (ist halt nur die Schlafzimmeranlage).
Dazu ein paar Fragen:
1. Würde das System brutefir neben XMBC schaffen?
2. Wie funktioniert BruteFIR mit ALSA (fiktive Soundkarte?) oder muss ich auf JACK umstellen, obwohl ich nicht weiß wie XMBC damit umgeht?
3. Gibt es ein einfaches Tool um die Raumfilter zu erstellen? Habe mir schon mal DRC angeguckt, aber ich denke, dass das auch einfacher gehen muss
4. Gibt es irgendwo ein gutes verständliches Tutorial (kann auch auf Englisch sein, kein Problem)
Das soll jetzt keine super duper akkurate Anlage werden, ist ja auch von dem Material nicht drin. Ich erhoffe mir halt nur eine kleine Verbesserung des Raumklangs und vielleicht eine Linearisierung des Frequenzgangs Zur Zeit fehlen die Mitten und die Stimmen (in Filmen) gehen auch unter.
Ich wünsche eine schöne Woche
waterburn
05.03.2013, 08:13
Hallo,
an alle die etwas mehr zum Thema wissen wollen, hier ein interessantes Buch:
https://ccrma.stanford.edu/~jos/filters/filters.html
Im letzten Kapitel geht es konkret um Filter für PD.
@ Matthias T.: Ich kann dir deine Fragen leider nur unzureichend beantworten.
zu1. Ich kann dir keine verbindliche Antwort geben, aber es wird auf jeden Fall von der gewählten Filterlänge und der Konfiguration von BruteFIR abhängen. Allerdings würde ich für XBMC eher eine Hardware wählen, die nen HDMI Ausgang bietet.
zu2: Ich weiß leider nicht, ob XBMC mit BruteFIR zusammenarbeiten kann. XBMC unterstützt nativ kein Jack. Ich habe aber schon mal eine Modifikation gesehen, die Jack unterstützen soll. Ausprobiert habe ich es aber nicht.
zu 3. : Schau dir mal RoomEQ-Wizard an. Das Tool erstellt dir allerdings nur minimalphasige Filter. Diese lassen sich in IIR eleganter umsetzen als mit FIR. Der Nachteil ist, dass es afaik noch keine Umsetzung für eine IIR Filterung unter Linux gibt.
zu 4. : Für BruteFIR kannst du dir mal den Thread Alternative zu SPB-Linux (http://www.diy-hifi-forum.eu/forum/showthread.php?t=2626&highlight=Alternative+sPB-Linux) durchlesen. Das muss ich auch noch machen, da ich selber auch gerade einen Faltrechner mit Atom-Board aufbaue. Zu einer IIR-Lösung gibt es kein mir bekanntes Tutorial.
Gruß
waterburn
vBulletin® v4.2.5, Copyright ©2000-2024, Jelsoft Enterprises Ltd.