Audiospuren Addieren Subtrahieren Dividieren - Signalverarbeitung mit Audacity

  • Hallo,


    ich möchte Audacity zu Testzwecken als Signalverarbeitungsprogramm verwenden. Und zwar soll das so aussehen:


    Über einen Stereoeingang kommen zwei Spannungssignale. Diese Werte sollen einmal addiert werden und einmal subtrahiert werden (Also U1-U2 und U1+U2).


    Danach soll die Differenz durch die Summe geteilt werden. (U1-U2)/(U1+U2).


    Gibt es da irgendeine Möglichkeit oder Plugin das ich übersehen habe?


    Danke,


    Philipp

  • Zuerst die Tonspur mit den Mess-Signalen markieren, dann im Audacity "Effekt" Menü die "Nyquist Eingabeaufforderung" öffnen (in Audacity_1.3.6-beta befindet sich die "Nyquist Eingabeaufforderung" unter "Effekt > Unsorted"). Im Textfeld der "Nyquist Eingabeaufforderung" folgenden Code (der grüne Text) hineinkopieren:


    * Addieren (links plus rechts):


    Nyquist Code: [m](sum (aref s 0) (aref s 1))[/m]


    * Subtrahieren (links minus rechts):


    Nyquist Code: [m](sum (aref s 0) (scale -1 (aref s 1)))[/m]


    * Differenz durch Summe dividieren


    geht in Nyquist nur mit einem Trick:


    (links minus rechts) / (links plus rechts)


    ist das gleiche wie:


    (links minus rechts) * (1 / (links plus rechts))


    Nyquist Code: [m](mult (sum (aref s 0) (scale -1 (aref s 1))) (recip (sum (aref s 0) (aref s 1))))[/m]


    Anschliessend im Fenster der "Nyquist Eingabeaufforderung" auf "OK" klicken.


    Getestet mit Audacity_1.3.6-beta unter Windows XP Professional SP2.


    Wenn eine Fehlermeldung wie "Nyquist gab keine Audiodaten zurück" oder ähnlich erscheint, das gleich wiederholen, im Fernster der "Nyquist Eingabeaufforderung" aber nicht auf "OK" sondern auf "Diagnose" klicken und den (meist relativ langen) Text, der im Nyquist "Diagnose" Fenster ausgegeben wird, hier ins Forum posten.


    Wie Nyquist funktioniert ist hier beschrieben: http://www.audacity-forum.de/d…t/nyquist-doc/nyquist.htm

  • Ich hab den Code für Subtrahieren mal ausprobiert:

    Zitat


    Nyquist Code:

    Code
    (sum (aref s 0) (scale -1 (aref s 1)))


    Wenn ich zwei identische Audiospuren subtrahiere kommt absolute Stille heraus. (wunderbar!)
    Ich wollte jetzt ein Musikstück mit dem passenden Instrumental(ohne Gesang) subtrahieren, sodass nur der Gesang über bleibt, aber das klappt überhaupt nicht. Es wird alles etwas lauter und blechernd.


    Habe ich irgendwo einen Denkfehler?


    Gruß Grumpf

  • Denkfehler gibt es da keinen (so weit ich das verstanden habe), aber der "Karaoke-Trick" (eine Spur von der anderen subtrahieren) funktioniert nicht mit allen Audio-Dateien. Ob es funktioniert oder nicht hängt hauptsächlich davon ab, wie die Stereodatei abgemischt wurde. Du kannst ja mal ausprobieren ob nach der Karaoke-Anleitung aus der deutschen Audacity Bedienungsanleitung das gleiche Ergebnis rauskommt.


    Es gibt auch noch ein Nyquist Karaoke-Plugin unter:


    * Nyquist Generator- und Effekt-PlugIns mit deutscher Oberfläche

  • Die Erklärung von Edgar ist soweit völlig richtig. Allerdings erklärt das nich so ganz, warum die Rechnung Vocal - (Karaoke)Instrumental nicht A Cappella rauskommt.


    Problem ist, das die entstandene Karaoke-Version eine reine Mono-Doppelspur und keine Stereo-Spur, wie Ursprungsdatei. Stellt sich jetzt nur die Frage, ob man aus einer Vocal-Mono-Doppelspur, das oben genannte herausbekommt. Zumindest ansatzweise.

  • Also anscheinend hatte ich es dann doch nicht richtig verstanden: :)


    Zitat


    Ich wollte jetzt ein Musikstück mit dem passenden Instrumental(ohne Gesang) subtrahieren, sodass nur der Gesang über bleibt, aber das klappt überhaupt nicht.


    Das "nur Musik" Karaoke Signal besteht entweder aus "linker Kanal minus rechter Kanal" oder "rechter Kanal minus linker Kanal" (beide Versionen sollten funktionieren). Es handelt sich in Wirklichkeit um ein Mono-Signal weil sich am Ende in beiden Stereo-Spuren zweimal das gleiche Signal befindet.


    Wenn ich das "links minus rechts" Doppel-Mono Karaoke Signal von der Original-Stereoaufnahme subtrahiere erhalte ich das folgende Stereo-Ergebnis:


    * (links) - (links - rechts) = -1 * rechts (im linken Kanal bleibt der invertierte und wahrscheinlich leicht verfälschte rechte Kanal der Originalaufnahme übrig)


    * (rechts) - (links - rechts) = 2 * rechts - links (im rechten Kanal bleibt ein Gemisch aus doppelt so lautem rechtem Kanal minus linkem Kanal übrig)


    "leicht verfälscht" deshalb, weil der "Karaoke" Trick nie so richtig genau 100% funktioniert, und alle Fehler des Karaoke-Signals finden sich natürlich auch in das Ergebnis-Signal.


    "doppelt so laut" deshalb, weil "Signal" minus "minus Signal" (doppeltes "minus") ist das gleiche wie "Signal" plus "Signal".


    Wenn ich das "rechts minus links" Doppel-Mono Karaoke Signal von der Original-Stereoaufnahme subtrahiere erhalte ich das folgende Stereo-Ergebnis:


    * (links) - (rechts - links) = rechts - 2 * links (im linken Kanal bleibt ein Gemisch aus rechtem Kanal minus doppelt so lautem linken Kanal übrig)


    * (rechts) - (rechts - links) = -1 * links (im rechten Kanal bleibt der invertierte und wahrscheinlich leicht verfälschte linke Kanal der Originalaufnahme übrig)


    Theoretisch könnte man denken dass es doch funktionieren müsste das "nur Musik" Karaoke Mono-Signal von der in Mono umgewandelten Originalaufnahme zu subtrahieren, um nur den Gesang zu erhalten. Das funktioniert aber aus folgendem Grund nicht:


    Die nach Mono umgewandelte Originalaufnahme besteht aus "links plus rechts" oder "rechts plus links" (was beides das gleiche, vollkommen identische Ergebnis hat).


    Wenn ich jetzt das "nur Musik" Karaoke Signal vom "Mono" Signal subtrahiere erhalte ich eines der beiden folgenden Ergebnisse:


    * (links + rechts) - (rechts - links) = -2 * links (der invertierte und doppelt so laute linke Kanal der Originalaufnahme bleibt übrig)


    * (links + rechts) - (links - rechts) = -2 * rechts (der invertierte und doppelt so laute rechte Kanal der Originalaufnahme bleibt übrig)


    In keinem Fall erhalte ich also das reine Gesangssignal.


    Ergebnis: Es ist mit einem Differenzsignal (Subtraktion der Stereokanäle = Standard Karaoke Trick) nicht möglich durch anschliessende "Weiterverarbeitung" das reine Gesangssignal zu erhalten.


    Ich weiss dummerweise aber auch keinen anderen Trick oder ein anderes Programm mit dem das möglich wäre.

  • Moin alle miteinander,


    ich wollte den oben aufgezeigten Nyquistbefehl (sum (aref s 0) (scale -1 (aref s 1))) benutzen um 2 Tonspuren voneinander abzuziehen, leider wird mir angezeigt das Nyquist keine Audiodatei zurückgibt, nach Diagnose sagt er :


    error: bad argument type - #<Sound: #5780328>
    Function: #<Subr-AREF: #6047930>
    Arguments:
    #<Sound: #5780328>
    0
    1>


    Win 7 Audacity 2.02


    Kann mir da jemand weiterhelfen , bzw. ist es ok das ich das hier wieder hochgrabe ? Dachte mir das es Sinn machen würde da ich die Eingabe ja von hier habe.


    Mfg 3ee

  • Zitat von 3eepoint

    ...Kann mir da jemand weiterhelfen , bzw. ist es ok das ich das hier wieder hochgrabe ? Dachte mir das es Sinn machen würde da ich die Eingabe ja von hier habe...


    Das ist eigentlich der Sinn von Threads, das man Themaähnliches in ein Thread schreibt und nicht immer einen neuen beginnt. Daher istd as völlig okay.


    Was aber deine andere Frage betrifft, kann ich dazu nichts sagen, weil ich mich da zu wenig mit auskenne bzw. damit arbeite. Allerdings kenne ich die meldung und habe dann immer an meinem Händling gezweifelt :)