Normlalizacja danych z pliku WAV



  • Cześć,

    Próbuję wyciągnąć dane z pliku WAV i przekonwertować je na vector. Zupełnie tak jak działa funkcja wavread w MATLABIE.
    Korzystam z Qt. Mam już cały nagłówek pliku WAV po jego otwarciu. Plik otwierałem przez QFile.

    char* result = new char[sizeWAV]; // tablica rozmiaru pliku WAV
    short* result_raw = (short*)result; // rzutowanie na short, ponieważ rozmiar próbki to 2 bajty
     
    double vector = new double[sizeWAV / 2];
     
    .... // przypisanie danych z nagłówka???
     
     
    for(int i = 0; i < sizeWAV / 2; i++)
    {
           vector[i] = result_raw[i] / 32768.0; // dzielę przez zakres 16bit (taki mam WAV), żeby orzymać vector liczb w zakresie -1 do 1
    }
    

    I mój problem polega na tym jak przypisać dane z nagłówka, żeby póżniej je normalizować w pętli.

    Mój nagłówek ma taką strukturę:

      char RIFF[4];
        qint32 dlugoscWbajtach;
        char WAVE[4];
        char fmt_[4];
        qint32 dlugoscBloku;
        qint16 format;
        qint16 kanaly;
        qint32 czestotliwoscProbkowania;
        qint32 bajtySek;
        qint16 bajtyProb;
        qint16 bitProb;
        char data[4];
        qint16 waveRozmiar;
    

    Format = 1, więc PCM.

    Ktoś zajmował się operacjami na WAV i potrafi pomóc? :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.