.wav-Datei bearbeiten



  • Ich grüße euch!

    Ich möchte gernne eine wav Datei bearbeiten und zwar duch das Nullsetzten des niederwertigen Bytes. Da ihr mir schon geholfen habt macht mein Programm das nicht. Die Ausgangswave-Datei hört genauso an wie die Eingangswavedatei. Normalerweise sollte ich einen Unterschied hören wenn ich die niederwertigen Bits auf Null setze. Hier vllt. findet ihr den fehler:

    -->habs entfernt fehler gefunden! 😉

    Ich weise auf die zeroLSB Funktion! Da steckt noch der Fehler! Und in meiner Main passiert nichts bzw. die zeroLSB funzt net richtig ansonsten läuft das ding!



  • BrainDeadCoder schrieb:

    Da ihr mir schon geholfen habt macht mein Programm das nicht.

    soso, wir sind also schuld an deiner misere.

    BrainDeadCoder schrieb:

    Normalerweise sollte ich einen Unterschied hören wenn ich die niederwertigen Bits auf Null setze.

    nicht unbedingt. wenn der signalpegel hoch genug ist, dann kann's schon sein, dass man keine änderung hört.

    BrainDeadCoder schrieb:

    Ich weise auf die zeroLSB Funktion! Da steckt noch der Fehler!

    die macht nur ausgaben. glaubst du, dass 'printf' einfluss auf deine samplingdaten hat?
    🙂



  • 😃 😃 😃 😃



  • Ja das stimmt ich hab das auch mit Pointern gemacht aber funzt auch nicht! Ich hab zur Zeit keine Idee! 😕



  • void zeroLSB(short sampIn[], short sampOut[], unsigned nSamp)
    { 
       while (nSamp--)    
         sampOut[nSamp] = sampIn[nSamp] & ~0xff;         
    }
    

    🙂



  • Naja ich hab mal mir erlaubt deinen Code zu nehmen aber man hört trotz dem keinen Unterschied. Ich hab das ganze mit einer for-Schleife realisiert aber ist genau das gleiche. Da ich eine Referenzwave-Datei habe muss sich die Ausgangsdtei genau so anhören.



  • hörst du dir auch die geänderte datei an ? 😃



  • Bau Dir mal (z.B. mir Audacity) eine wav-Datei, bei dem die maximale Amplitude (bezogen auf normiert -1.0 - +1.0) so bei ca. 0.007 liegt. Nach dem entfernen des LSB sollte man dann gar nichts mehr hören.



  • Tachyon schrieb:

    Bau Dir mal (z.B. mir Audacity) eine wav-Datei, bei dem die maximale Amplitude (bezogen auf normiert -1.0 - +1.0) so bei ca. 0.007 liegt. Nach dem entfernen des LSB sollte man dann gar nichts mehr hören.

    ...und bei voll ausgesteuerten 16-bit .wav-files, die sich irgendwo zwischen -32000 bis +32000 bewegen, lassen sich durch löschen des lsb maximal 255 abziehen. das ist fast nix und sollte kaum hörbar sein. oder er mischt sich ein fieses knistern rein, weil das signal mal mehr, mal weniger stark richtung nullpunkt gezwungen wird.
    🙂



  • Ich grüße Euch!
    Ja da ist wenn man so möchte ein "Hindergrund-Rauschen" eingebaut das soll man das soll mnan bei der Ausgabedatei einfügen. Aber ich hab das Problem gelöst. Hab das mit der for-Schleife gemacht. Funktioniert jetzt wunderbar. Aber vielen dank für die wertvollen Tipps. Ich finde es echt toll wie man hier in dieser Community geholfen wird. Großes Lob an euch! Ich werde bestimmt mit anderen Problemen euch fragen müssen *g* bin ja schließlich ein beginner 😃



  • BrainCoder schrieb:

    Ja da ist wenn man so möchte ein "Hindergrund-Rauschen" eingebaut das soll man das soll mnan bei der Ausgabedatei einfügen.

    dann mix dir lieber zufallswerte rein, als die unteren 8 bits zu löschen. rand() reicht völlig aus dafür.
    🙂



  • ~fricky schrieb:

    BrainCoder schrieb:

    Ja da ist wenn man so möchte ein "Hindergrund-Rauschen" eingebaut das soll man das soll mnan bei der Ausgabedatei einfügen.

    dann mix dir lieber zufallswerte rein, als die unteren 8 bits zu löschen. rand() reicht völlig aus dafür.
    🙂

    Das ist aber übelst weiss, das Rauschen. Ich würde das vielleicht noch etwas einfärben, sonst kann das u.U. doch schon nervig werden.



  • Tachyon schrieb:

    Ich würde das vielleicht noch etwas einfärben...

    meinst du frequenzabhängiges rauschen? sowas ist aber nicht ganz einfach...
    🙂



  • ~fricky schrieb:

    Tachyon schrieb:

    Ich würde das vielleicht noch etwas einfärben...

    meinst du frequenzabhängiges rauschen? sowas ist aber nicht ganz einfach...
    🙂

    Naja, so schwer ist es abar auch nicht.
    Am einfachsten, man berechnet sich ein approximiertes, idelales Tiefpass mit der si-Funktion. Die Bandgrenze kann man dabei der in si-Funktion festlegen mit 0.0 = 0 - 1.0 = fs/2. Die Sperrdämpfung kann man mit Fensterfunktionen bestimmen. Da findet man bei Wikipedia jede Menge zu.

    Eine Faltung ist auch nicht allzu schwer zu implemntieren. Dafür gibt es auch massig Snippets im Netz, wenn man das will.



  • Tachyon schrieb:

    Naja, so schwer ist es abar auch nicht.

    kommt immer drauf an. jedenfalls aufwändiger als rand() oder's lsb nullzusetzen.
    🙂


Anmelden zum Antworten