» Veranstaltungen
» Navigation
» über uns
|
» Registrierung
Liebe Mitleserinnen, Mitleser, Foristinnen und Foristen,
wer sich von Euch in letzter Zeit mit dem Gedanken getragen hat, Mitglied unseres wunderbaren IGDH-Forums zu werden und die vorher an dieser Stelle beschriebene Prozedur dafür auf sich genommen hat, musste oftmals enttäuscht feststellen, dass von unserer Seite keine angemessene Reaktion erfolgte.
Dafür entschuldige ich mich im Namen des Vereins!
Es gibt massive technische Probleme mit der veralteten und mittlerweile sehr wackeligen Foren-Software und die Freischaltung neuer User ist deshalb momentan nicht mit angemessenem administrativem Aufwand möglich.
Wir arbeiten mit Hochdruck daran, das Forum neu aufzusetzen und es sieht alles sehr vielversprechend aus.
Sobald es dies bezüglich Neuigkeiten, respektive einen Zeitplan gibt, lasse ich es Euch hier wissen.
Das wird auch für alle hier schon registrierten User wichtig sein, weil wir dann mit Euch den Umzug auf das neue Forum abstimmen werden.
Wir freuen uns sehr, wenn sich die geneigten Mitleserinnen und Mitleser, die sich bisher vergeblich um eine Freischaltung bemüht haben, nach der Neuaufsetzung abermals ein Herz fassen wollen und wir sie dann im neuen Forum willkommen heißen können.
Herzliche Grüße von Eurem ersten Vorsitzenden der IGDH
Rainer Feile
-
Freeware zum Offlinefalten?
Hi,
ich suche eine Freeware mit der man zwei oder mehr Impulse Offline falten kann, und die das Ergebnis dann auch gleich wieder kürzt. Beim Falten entsteht ja eine doppelt so lange Datei, und die möchte ich nicht manuell beschneiden, denn sonst könnte man das auch mit Brutefir machen.
Gibt es da was?
-
-
Terrorbiker
Scilab ist aber keine Freeware nicht...
An freier Software gäb's noch GNU Octave, schlägt in eine ähnliche Richtung wie Scilab oder das proprietäre Matlab.
Inwieweit die alle zum Falten geeignet sind, keine Ahnung.
P.S.:
BrutFIR ist doch auch freie Software, oder?
Warum nicht das modifizieren?
P.P.S.:
Was spricht gegen ein Script, bei dem man selber genau steuern kann, was genau passiert?
Geändert von Chaomaniac (04.07.2011 um 17:06 Uhr)
Dimebag isn't dead…
…in secret, he's teaching to Chuck Norris how to be a man! Gaaaaanz viel Zeug zu verkaufen...
-
Hi,
ich brauche das um mehrere Faltungen automatisch ablaufen zu lassen. Hintergrund: Ich höre über Linux/Brutefir, wobei ich je einen Impuls habe für.
-Chassis entzerren (linear)
-Frequenzweiche
-DRC
-EQ über alles
also 4 hintereinandergeschaltete Filter, die ein 4 mal so langes Delay ergeben. Ich würde daher gerne die Dateien vor dem Start von Brutefir alle Offline miteinander falten, so das ein "Gesamtimpuls" dabei rauskommt, der nicht länger als die Einzelfilterlänge ist. Das geht zwar auch mit Brutefir, aber das Ergebnis wird ja immer länger, so das ich am Ende nix gewonnen habe. Ich müsst das dann manuell beschneiden, und das würde ich gerne umgehen. Das Programm müsste also den Peak des Gesamtimpulses erkennen, und dann bei X Samples davor und Y Samples danach nen Schnitt machen, und mir das Ergebnis liefern...
-
Zitat von Chaomaniac
Scilab ist aber keine Freeware nicht...
...
Also Freeware (doppelte Negation): "Scilab 5 is governed by the CeCILL license (GPL compatible) abiding by the rules of distribution of free software.
See the information delivered on the Free Software Foundation on CeCILL >>
You can use, modify and/or redistribute the software under the terms of the CeCILL license as circulated by CEA, CNRS and INRIA at the following URL: http://www.cecill.info"
Unter Matlab heisst der Befehl "convolve", sollte unter Scilab ähnlich sein....
-
Terrorbiker
Genau auf das wollte ich raus.
Free Software ≠ Freeware...
Dimebag isn't dead…
…in secret, he's teaching to Chuck Norris how to be a man! Gaaaaanz viel Zeug zu verkaufen...
-
Hallo Leute,
viel wichtiger in dem Zusammenhang, wenn diese Tools genannt sind:
Welcher Algorithmus soll denn hier laufen?
Gibt es schon m-Skripte (z.B. für Octave), die das beispielhaft implementieren?
Gruß
Ulf
-
Zitat von Chaomaniac
P.S.:
BrutFIR ist doch auch freie Software, oder?
Warum nicht das modifizieren?
Von den genannten Vorschlägen ist mir das noch am sympatischten, denn es fehlt hier tatsächlich nur die Funktion "Peak suchen und beschneiden". Alles andere kann Brutefir schon.
-
Na ja, ganz so einfach ist es vielleicht nicht.
Das Falten ist kein Problem. Das einfache Ausschneiden ist im Prinzip ein Abschneiden inkl. gedachtes Fensterns mit einem Rechteckfenster. Das kann dann Einschwingprobleme bereiten, wenn die Samples/taps am Anfang und Ende <> 0 sind.
Normalerweise würde man dann also nach dem Ausschneiden noch passend fenstern, als da wären Hanning, Hamming, Blackman etc.
Natürlich können Matlab, Octve & Co das auch. Ich kenn noch so ein Programm, ist aber nicht Freeware
Viele Grüsse
Uli Brüggemann
AudioVero e.K., www.audiovero.de
Gewerblicher Teilnehmer
_________________________________
... und die gute Fee erfüllte den sehnlichsten Wunsch des Basstreibers, nämlich ein verdammt schneller Bass zu sein. Er spielt jetzt als Hochtöner
-
-
Zwangsfalter
Ich hol das mal hier wieder hoch, da ich aus gegebenem Anlass ebenfalls den Wunsch hatte zwei Filter miteinander zu "verfalten".
Ich hab das mit Brutefir erledigt und bie mir ist das Ergebnis nicht doppelt so groß wie die beiden Filterdateien.
Beispiel:
Verfalten möchte ich die beiden Dateien brdrcl.pcm und fliterl.pcm.
Beide Dateien sind 256kb groß. Als Eingangsfile benutze ich brdrcl.pcm, innnerhalb von Brutefir arbeitet filterl.pcm. Das Ausgangsfile heißt kombil.pcm und ist genau wie das Eingangsfile nur 256kb groß.
Folgende Brutefir.conf habe ich verwendet:
Code:
float_bits: 32; # internal floating point precision
sampling_rate: 44100; # sampling rate in Hz of audio interfaces
filter_length: 4096,16; # length of filters
overflow_warnings: true; # echo warnings to stderr if overflow occurs
show_progress: true; # echo filtering progress to stderr
max_dither_table_size: 0; # maximum size in bytes of precalculated dither
allow_poll_mode: false; # allow use of input poll mode
modules_path: "."; # extra path where to find BruteFIR modules
monitor_rate: false; # monitor sample rate
convolver_config: "~/.brutefir_convolver"; # location of convolver config file
logic: "cli" { port: 3000; };
## COEFFS ##
coeff "left" {
filename: "/home/ek/filterl.pcm";
format: "FLOAT_LE";
attenuation: 0.0;
};
## INPUT OUTPUT ##
input "left" {
device: "file" { path: "brdrcl.pcm"; };
sample: "FLOAT_LE";
channels: 1;
};
output "left" {
device: "file" { path: "kombil.pcm"; };
sample: "FLOAT_LE";
channels: 1;
};
## FILTER ##
filter "left" {
from_inputs: "left";
to_outputs: "left";
coeff: "left";
};
Gruß
Elmar
La vida es no ponyhof
-
Hi,
sind das minimalphasige Filter? Falls ja: Ist der Ausgang wirklich gar nicht grösser geworden, oder nur um die Partitionsgrösse (4Kb)?
-
Zwangsfalter
Also zunächst muss ich mich mal korrigieren, der Impuls filterl.pcm, also der der in Brutefir arbeitet, ist 512 KB gross, dabei handelt es sich um meine "Vorentzerrung", die ich mit den EQ´s aus REW gebastelt habe.
Der Impuls, den ich als Eingangsfile benutze ist mit DRC erstellt, die "Überallesentzerrung" und der ist 256 KB gross.
Das Ergebnis "kombil.pcm" ist genau wie das Eingangsfile "nur" 256 KB gross. (alles KB nicht kb, sorry dafür ) ob es sich dabei um Minimalphasige Filter handelt ?
Tatsache ist, dass ich mein Ziel erreicht habe, durch weniger Coeffs, habe ich wieder mehr freien Speicher ( TinyCore läuft ja vollständig im RAM) gewonnen.
Ob die Latenz im Gegensatz zum vorhergegangenen "from Filter to Filter" Prozedere kleiner geworden ist, müsste ich erst noch messen.
Gruß
Elmar
La vida es no ponyhof
-
Erfahrener Benutzer
Wie handhabt das BruteFIR eigentlich mit den Filterlängen? Man muss ja immer Angaben machen, wie Elmar z.B. 65536.
Gibt man BruteFIR ein kürzeres Filter wird er vermutlich zero padden. Nur wie? Wird am Anfang und am Ende mit 0en gepadded um die Eigenschaft der linearphasigkeit beizubehalten?
Ich vermute mal, dass es nicht so gemacht wird da ich bei unterschiedlich langen Filtern auch unterschiedliche Delays erhalte. Die wären exakt gleich wenn vernünftig gepadded wird da beide Impulse bei 32768 wären.
Was passiert wenn man ihm ein längeres Filter gibt? Schneidet er einfach das Ende ab? Habe ich jetzt noch nicht getestet.
Ich frage deshalb, weil hier die Rede von unterschiedlich großen Sätzen an Koeffizienten war.
256kB deuten bei 32Bit floats auf eine Filterlänge von ~64000 hin. 512kB auf das doppelte - es sei denn es wären 64Bit doubles.
Da hintereinandergeschaltete Filter auch nacheinander berechnet werden scheint es hier dann keine Probleme mit den Delays zu geben aber das ganze hat mich wieder auf die Fragestellung gebracht
Ansonsten würde ich mir das Faltungsergebnis mal plotten lassen. Wer kein Matlab oder sowas hat kanns auch mit Excel/Open Office machen. Bei linearphasigen sieht man sofort den Impuls in der Mitte.
Achja falls immer noch ein Programm für das Falten von Filtern gewünscht ist könnte ich da vielleicht was machen.
I'm not insane... my mother had me tested - Sheldon Cooper
-
Zitat von slacky
Gibt man BruteFIR ein kürzeres Filter wird er vermutlich zero padden. Nur wie? Wird am Anfang und am Ende mit 0en gepadded um die Eigenschaft der linearphasigkeit beizubehalten?
Ich vermute mal, dass es nicht so gemacht wird da ich bei unterschiedlich langen Filtern auch unterschiedliche Delays erhalte.
Achtung, jetzt kommt Halbwissen (bestenfalls) und Raten...
Nach meinen Verständnis wäre es (fast) egal wo die Nullen dranhängen, solange es Nullen sind. Abschneiden wäre ganz schlecht, weil das einem Rechteckfenster entspräche, mit den entsprechenden negativen Effekten.
Unterschiedliche Delays hat man bei unterschiedlichen Filterlängen, denn das Delay (Gesamtverzögerung) setzt sich ja aus 2x Partitionsgrösse + "Verzögerung bis zur Spitze der Filterdatei" zusammen. Das bei Elmar die gleiche Länge bei Eingang/Ausgang rauskommt, finde ich seltsam.
Nimmt man mal eine "ungewöhnliche" Filterdatei, d.h. eine mit einem Impuls am Anfang und "irgendwas" (also z.B. noch eine Spitze) am Ende, so hört man ein Echo (also z.B. zwei Impulse). Man kann die beiden Signale (Eingang/Filter) ja auch vertauschen, also den Eingang zur Filterdatei machen, und die Filterdatei da durch "jagen". Das Ergebnis muss ja das Gleiche sein, so wie 2+4 = 4+2 ist.
Nimmt man als Eingangssignal ein Rauschen und filtert es mit einem Filter der die besagten 2 Spitzen (Anfang/Ende) hat, ergibt sich natürlich etwas, das länger ist als der Eingang.
Vereinfacht gesagt beginnt die Wiedergabe mit dem ersten Impuls, und endet nach dem das Eingangssignal den zweiten Impuls (des Filters...) durchlaufen hat (Echo). Daher müsste bei einem nicht minimalphasigem Filter der Ausgang IMO länger sein.
Brutefir nutzt ja die schnelle Faltung, d.h. es arbeitet eigentlich im Frequenzbereich. Es wird (nach meinem Verständnis) eine FFT der Filterdatei gemacht, und geguckt wieviel von Frequenz X (Amplitude) und wann (Phase) vorhanden ist, und multipliziert die Frequenz- und Phasenanteile mit den Frequenz- und Phasenanteilen des Eingangssignals.
Das ist IMO solange kein Problem, solange alles minimalphsig bleibt, und die Phase den "Aplitudenanteilen" entspricht. Hat man Phasensprünge (Verzögerungen), müsste der Ausgang länger werden, weil das "Wann" später erfolgen kann, als beim Orginalsignal. Im Extremfall wäre dann die Antwort so lang wie Filter + Eingangssignal.
Das sie gleich lang sind, liegt also IMO daran, das der grösste Teil des Filters aus Nullen besteht und somit zeitlich gesehen das Eingangssignal nicht verlängert wird.
Interessant wäre doch die Frage, wie der Ausgang aussieht wenn man mal Filterdatei und Eingangsdatei tauscht. D.h. die längere Datei als Eingang nehmen...Imo sollte das Ergebnis gleich sein. Wenn die Ausgangsdatei dann wieder der Eingangsdateilänge entspricht, können das ja nur Nullen an Anfang und Ende sein...
Vieleicht ist das aber auch kompletter Unsinn? Keine Ahnung...
-
Zwangsfalter
-
Hallo Sleepwalker,
ohne BruteFIR zu kennen würde ich deinen treoretischen Überlegungen zustimmen. Eine ergänzende Idee hätte ich allerdings noch. Ein Grund dass die Ausgabedatei nicht länger ist als die Eingangsdatei könnte sein, dass BruteFIR die zusätzlichen Koeffizienten zwar berechnet, aber noch nicht ausgibt, da es auf weitere Eingaben wartet. Stichwort wäre hier die segmentierte Faltung bzw. das Overlap-Add Verfahren.
gruß
waterburn
-
Zwangsfalter
-
Zitat von The Alchemist
Moinsen,
wenn ich die "lange" Impulsdatei (filterl.pcm, 512KB) als Eingang verwende ist die Datei auch wieder 512 KB groß am wenn sie hinten raus kommt.
Probiert das doch einfach mal mit 2 Impulsen und der Brutefir Config die ich angegeben habe (da müssen dann nur die Pfade zu den Impulsdateien geändert werden.)
Hab ich. Es stimmt was du schreibst. Das kann aber (imo) nur sein, wenn der Filter minimalphasig ist. Beim REW ist er das auf jeden Fall, beim DRC kann man das einstellen.
Zitat von The Alchemist
Für mich ist die Diskussion zu hoch , aber wenn ich mir vorstelle eine WAV-Datei zu offline zu falten, um sie z.B im Auto wiederzugeben, dann darf die Datei ja auch nicht länger werden als vorher; sie muss "nur" verändert werden.
Das stimmt eben nur bedingt. Du veränderst ja (evtl.) die Phase, was nichts anderes als der "Zeitpunkt" ist. Wenn du nun die tiefen Töne verzögerst, die hohen aber nicht (aka Phasenverschiebung), fängt das Wav bei der Wiedergabe mit den hohen Tönen an, die Tiefen setzten aber später ein und hören auch erst später auf. Das kann eben zu einem Ausgangswav mit der Größe (im Extremfall) Wav+Filterlänge führen. Im Prinzip passiert ja genau das, wenn man mit der Impulsantwort eines Raums (z.B. Kirche) arbeitet. Da sollte dann das Ausgangsfile um z.B. das Echo länger sein. Dieses Echo findet sich in der Impulsantwort des Raums rechts vom "Orginalimpuls", so wie man es auch bei Reflexionen bei Messungen hat. Da sieht man die "Zacken" in der Impulsantwort auch. Das führt dann zum Echo. Kannst du leicht testen, wenn du deinen Raum misst und die Messung nicht durch DRC jagst, sondern direkt mit der Raumimpulsantwort faltest. Das geht z.B. mit dem REW. Du misst und exportierst nicht die Impulsantwort der Filter (EQs), sondern der Messung. Das hört sich so an, als wenn du Musik über die Boxen abstpielst und mit dem Mikro aufnimmst. Ganz grausam...
Wenn du die dann mit deiner Test-Config als Filterdatei nimmst, MUSS (IMO) die Antwort läger werden. Sonst stimmt irgendwas nicht...im Zweifel mein Verständnis der Materie...
Zitat von The Alchemist
Versucht man allerdings zwei Impulse mit lsconv zu falten, dann bekommt man ein vergrössertes File:
lsconv filterl.pcm brdrcl.pcm kombi2.pcm
Das könnte daran liegen, das lsconv "wirklich" faltet, und nicht wie Brutefir "trickst". Du kannst dir die Faltung als zwei Messschriebe vorstellen, wo jeweils die Impulsantwort auf einem langen Blatt Papier ausgedruckt ist. Nun legst du die Blätter übereinander, und zwar so, dass vom vom oberen Blatt die rechte untere Ecke, und vom unteren Blatt die linke obere Ecke aneinander stossen. Also seitlich versetzt. Beim Falten schiebst du jetzt die Blätter aneinander vorbei. Immer wenn auf einem Blatt ein Wert (Sample) > 0 ist, "passiert" ja irgendwas, d.h. das Ergebnis (Ausgang) weicht von 0 ab. Wenn du die Blätter nun aneinander "vorbei" von Sample zu Sample schiebst, ergibt der Ausgang genau die Länge von "2 Blatt".
Die E stellt die Eingangssamples dar, F die Samples (Koeffizienten) des Filters, und A das Ausgangssignal.
1.
E :x x x x x x x 0
F: 0 0 0 y y y y y y y y
A: 0
2.
E:0 x x x x x x x x 0
F: 0 0 0 y y y y y y y y
A: 0 0 0 z 0
3.
E:0 0 x x x x x x x x 0
F: 0 0 0 y y y y y y y y
A: 0 0 0 z z 0
4.
E:0 0 0 x x x x x x x x 0
F: 0 0 0 y y y y y y y y
A: 0 0 0 z z z 0
5.
E:0 0 0 0 x x x x x x x x 0
F: 0 0 0 y y y y y y y y
A: 0 0 0 z z z z 0
5.
E:0 0 0 0 0 x x x x x x x x
F: 0 0 0 y y y y y y y y
A: 0 0 0 z z z z 0
usw.
So sieht das aus. Dann versteht man auch, warum ein linearphasiger Filter, dessen Impuls in der Mitte (der Impulsantwort des Filters) ist, eine Verzögerung (Latenz) von mind. der halben Filterlänge hat, ein minimalphasiger Filter, dessen "Spitze" aber am Anfang der Impulsantwort (Koeffizienten) ist, eben "nur" die Latenz von 2x Partitionsgrösse hat. Das Eingangssignal "sieht" beim "vorbeischieben" an den Filterkoeffizienten "sofort" etwas >0 und hat somit "sofort" was am Ausgang, wärend bei einem Impuls in der Mitte (lin.phasig) erstmal durch den halben Filter geschoben werden muss, bevor nennenswerte Grössen am Ausgang entstehen. "Nennenswerte" ist hier wichtig, weil die Koeffizienten zwar klein, aber nicht unbedingt 0 sind.
Wenn lsconv also richtig falten, und nicht wie Brutefir trickst, werden auch alle "Nullen" berücksichtigt, und landen als Sample am Ausgang. Wenn man aber in der Frequenzebene "faltet", existiert diese "0' nicht, d.h. sie entspricht keiner Amplitude/Phase, und fällt somit "weg".
So erklär ich mir das...ob das stimmt...
Edit: Meine Darstellung sollte anders aussehen. Offenbar verwirft die Forensoftware "überflüssige" Leerzeichen...
-
Zwangsfalter
Boah ey Torsten,
ich versteh das mit dem Falten in diesem Leben wohl nich mehr, für mich reicht es, dass es funzt
Ich hab verstanden, dass "Der Bürgermeister von Wesel" um den "Esel" verlängert wird, und das wohl alle meine Filter minimalphasig sind (ist das schlimm? )
Da gibt es dann noch das Programm MarcPM von U. Brüggemannn, das aus minimalphasigen Filtern linearphsige machen kann, das funktioniert allerdings nicht ganz so wie ich mir das vorgestellt hab, also konnte ich nicht testen, ob man längere Filter erhält wenn man nur linearphasige Filter faltet.
Wenn ich jetzt aber davon ausgehe, das Brutefir trickst, faltet Brutefir dann generell minimalphasig?
Gruß
Elmar
La vida es no ponyhof
Ähnliche Themen
-
Von Audiovirus im Forum Sonstige Messtechnik und Simulation
Antworten: 134
Letzter Beitrag: 22.05.2015, 14:16
-
Von tiefton im Forum Allgemeine Themen
Antworten: 7
Letzter Beitrag: 06.01.2013, 00:23
-
Von rapherent im Forum Allgemeine Themen
Antworten: 32
Letzter Beitrag: 07.06.2012, 13:21
-
Von Sleepwalker im Forum Weichenfragen
Antworten: 25
Letzter Beitrag: 08.04.2011, 22:51
Forumregeln
- Es ist dir nicht erlaubt, neue Themen zu verfassen.
- Es ist dir nicht erlaubt, auf Beiträge zu antworten.
- Es ist dir nicht erlaubt, Anhänge hochzuladen.
- Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
-
Foren-Regeln
|