• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Der Egalisator
So.......nun aber....

Wir müssen die beiden WAV-Dateien:

1. Synchronisieren (= zeitlichen Versatz ausgleichen)
2. Normieren (= gleiche Amplituden)
3. Invertieren (ggfls. 180° Phasendrehung ausgleichen)

Hat jemand Ideen? misstrau
 
http://de.wikipedia.org/wiki/Kreuzkorrelation misstrau
 
...das läuft auf irgenso ein adaptives Kurven-fitting raus....
nicht ganz easy....weil ja im voraus keine fixen Orientieungspunkte da sind...
der "maximum" fit ist (ich denke gerade , wie ich das machen würde...) am einfachsten mit ner Kreuzkorrelation zu finden
das bedeutet aber auch, mega-FFTs durchzurechnen...eieiei... Confused

...aaahh...sehe...du dachtest an das gleiche Tongue
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
Wenn ich mit audacity etwas abspiele und gleichzeitig aufnehme, so ist die Aufnahme gegenüber der Abspieldatei etwas versetzt. Die Aufnahmedatei kommt verspätet, woran auch die Schalllaufzeit Anteil trägt. Damit ist schon mal die Schieberichtung klar.

Mehr als eine Sekunde wird man aber nicht verschieben müssen.

Wenn ich mir jetzt in dieser einen Sekunde 100 Samples im statistisch verteilten Abstand aussuche und die Schiebespur jeweils um eine 1/48000 Sekunde (ein Sample) weiterschiebe, so hab ich es mit 48000 * 100 indizierten Subtraktionen zu tun, bis ich das Optimum (Subtraktionsminimum) gefunden hab. Das ganze mal zwei, weil ich parallel ja auch gleich invers arbeiten muss. Also sind rund 10 Millionen Subtraktionen durchzuführen.

Das sollte locker in unter einer Sekunde zu schaffen sein und dann wissen wir auch gleich die Inversionsfrage zu beantworten und können nach Phasengleichheit auf einen Schlag normieren, wenn wir die Amplituden auch gleich noch mitaddieren.

Nachvollziehbar?

misstrau
 
Udn damit wäre dann das Thema eigentlich auch schon erledigt, denn nach der Synchronisation, Invertierung und Normierung können wir die ganze Datei durchrechnen.

Dazu werde ich die Fehlerabweichung mit einem konstanten Faktor (zum Beispiel 0,5) gewichten und die gewichteten Fehlersamples zur Orginaldatei - Sample für Sample - addieren. Also erstmal rein 1-dimensional.

 
"Normale" Soundkarten haben oft auch eine deutlich hörbare Latenz..... misstrau
Hast Du aber bestimmt schon auf dem Schirm, Gucki... ;pop;corn;
 
..hmm..
1. wieso 0.5 gewichten ? -- dachte diff. voll abziehen
2. für ne wirklich genaue Subtraktion muss der Zeit-versatz auch extrem genau ermittelt werden (speziell für hohe Frequenzen)...im sub-sample-bereich , d.h man müsste interpolieren und den ganzen traraa... misstrau
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
Zitat:Original geschrieben von Moki
"Normale" Soundkarten haben oft auch eine deutlich hörbare Latenz..... misstrau
Hast Du aber bestimmt schon auf dem Schirm, Gucki... ;pop;corn;

Nö. Ich hatte nur bei den Vorversuchen beobachtet, dass es so ist. Die Ursache ist mir schnurz. Für uns hat das den Vorteil, dass wir genau sagen können, welche Datei voreilt, also die Schieberichtung klar ist.
 
Zitat:Original geschrieben von alfsch
1. wieso 0.5 gewichten ? -- dachte diff. voll abziehen
Wir dürfen die Verstärkung im Regelkreis nicht zu hoch machen, wenn wir mehrere Iterationen betreiben wollen.

Zitat:Original geschrieben von alfsch
2. für ne wirklich genaue Subtraktion muss der Zeit-versatz auch extrem genau ermittelt werden (speziell für hohe Frequenzen)...im sub-sample-bereich , d.h man müsste interpolieren und den ganzen traraa... misstrau
Ok. Stimmt. Kommt auf die Liste.
 
Ich hab gerade WAV eingelesen und mach in der Sekunde erste Sync-Versuche.... . Smile
 
Zitat:Original geschrieben von Rumgucker

Ich hab gerade WAV eingelesen und mach in der Sekunde erste Sync-Versuche.... . Smile

Und, haut's hin...? ;pop;corn;
 
Weiß ich nicht genau. Der Debugger hadert noch mit meinen Ringbuffern.... Rolleyes
 
Zitat:Original geschrieben von Rumgucker

Weiß ich nicht genau. Der Debugger hadert noch mit meinen Ringbuffern.... Rolleyes

Hab es bei Wicki gerade mal angelesen. Du lädst also immer nur eine kleine Menge abzugleichender Daten in den Puffer, dieser wird dann ständig aktualisiert wobei die "alten" Daten dann überschrieben werden?
 
Bei der Phasensynchronisation hol ich mir ein neues Wort von der Platte und schiebe es in einen "FIFO". Bei einem FIFO fällt ein Wort raus und es kommt ein neues Wort dazu.

Um nun aber nicht alle Worte um jeweils eine Position verschieben zu müssen (ein FIFO ist eigentlich ein Schieberegister), verwendet man einen Index, der jeweils auf die Speicherposition des ältesten Wortes zeigt und dieses mit dem neuen Wert überschreibt. So hat man die Funktion eines FIFOs mit einem einzigen Schreibzugriff erledigt!

Nachteilig ist bei dieser Konstruktion jedoch, dass alle Indizes auf die Obergrenze des Buffers achten müssen. Falls sie diese überschritten haben, so müssen sie wieder an den Anfang des Buffers gestellt werden. Derartige Indizes laufen also erst hoch, kriegen dann einen Schreck und beginnen daraufhin wieder am Anfang. Sie laufen sozusagen im Kreis - in einem Ring. Der Konstrukt heißt daher Ringbuffer.

So hat man einen blitzschnelle Beschreibung des Buffers erreicht (man liest ja nur ein weiteres Wort von der Platte) und einen - durch die permanente Grenzenkontrolle - etwa verlangsamte Auslesung. Da ich bei der Synchronisierung jedoch nicht jede Bufferposition lese, sondern viele zwischendurch überspringe, überwiegt der Vorteil der schnellen Speicherung.

 
Danke für die Erklärung, Gucki. Wink

Die Möglichkeiten sind wirklich gewaltig in der Programmierung. Ringpuffer, First in First out, vorher noch nie gehört.
Ihr dürft mich jetzt schlagen..... Sad

Btw Programmierung......
Mir ist noch ein anderes Programm eingefallen das vielleicht deine Funktionen bereitstellen könnte:

http://de.wikipedia.org/wiki/SuperCollider

Da steht das die Sprache an C angelehnt ist.
Schau Dir mal die Möglichkeiten im Codefenster an, vielleicht kommst Du damit ja schon zurecht?
Das Programm arbeitet auch mit wav-files.

Das Programm selber ist hier zu finden:

http://supercollider.sourceforge.net/

Und noch das Wiki:

http://swiki.hfbk-hamburg.de/MusicTechnology/6

Nur so als Idee bzw. Vorschlag..... Wink
 
...was das alles gibt.... überrascht

Aber wie gesagt: ich bin weder Musiker noch Akustiker. Ich kann damit nichts anfangen.
 
Ja, okay. Wenn Du dich da erst einarbeiten musst bringt das nichts.
Dachte ich könnte Dir ein wenig Arbeit ersparen.... ;pop;corn;
 
Zitat:Original geschrieben von Moki
Dachte ich könnte Dir ein wenig Arbeit ersparen.... ;pop;corn;

Ach.. das wär schön, wenn einer mir die Arbeit ersparen würde.... Rolleyes

Ich bin so demotiviert gerade ein Akustikprojekt zu machen. Wie kam gerade ICH dazu? Hätte ich nicht besser meine Klappe gehalten? ICH bin doch der Letzte, der was davon hat, denn mich interessiert ein "perfekter Klang" doch gar nicht, weil ichs eh nicht hören kann.

Aber so ist das nun mal....

... da muss ich jetzt durch.

Aber ich werd mir eiskalt auch 100 Jahre Zeit lassen lachend
 
Zitat:Original geschrieben von Rumgucker
Ach.. das wär schön, wenn einer mir die Arbeit ersparen würde.... Rolleyes

Ich bin so demotiviert gerade ein Akustikprojekt zu machen. Wie kam gerade ICH dazu? Hätte ich nicht besser meine Klappe gehalten? ICH bin doch der Letzte, der was davon hat, denn mich interessiert ein "perfekter Klang" doch gar nicht, weil ichs eh nicht hören kann.

Aber so ist das nun mal....

... da muss ich jetzt durch.

Aber ich werd mir eiskalt auch 100 Jahre Zeit lassen lachend

lachend lachend lachend

Ich beschäftige mich meistens nur mit einer Sache wenn ich etwas brauche bzw. bauen will. Ansonsten hänge ich mich auch nicht so intensiv da rein.
Du hast als Grund nur, dass Dir das Geschnacker der Lautsprechermacker auf's Helmchen ging. klappe
Finde ich jetzt auch nicht soooo motivierend... lachend

[SUP]Einfach zwischendurch mal ein paar sagenhafte Neuigkeiten posten und dann den Thread gaaaanz langsam einschlafen lassen......[/SUP];whistling
 
Nein, nein... das geht hier schon weiter. Aber nur langsam.

Ich wäre wesentlich mehr motiviert, wenn ich mit dem Verfahren die Werbetrommel rühren könnte. Fürs Forum. Aber wir wissen noch nicht genug, dass ich mich so weit aus dem Fenster lehnen würde.

Also Geduld.... alles wird gut.