logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Efekt normalizacji dźwięku c++

koti 28 Maj 2006 16:35 1167 1
REKLAMA
  • #1 2672724
    koti
    Poziom 1  
    Chodzi mi o proces zwiększania lub zmniejszania amplitudy dźwięku względem największej wartości amplitudy tego sygnału. Efekt ten można spotkać w każdym edytorze dźwięku np. Sound Forge czy WaveLab.

    Poniżej przedstawiam fragment kodu:

    
    for(unsigned int i = bSection; i < eSection; ++i){
         
         inputSample[j] = (int)(waveFile->byteSamples[i]) - 128;
         ++j;
       
    }
    

    Legenda:
    byteSamples - tablica próbek pliku 8 bit mono, format microsoft wav
    Opis działania: Zamieniam próbki z postaci 0..255 na postać -128..128

    
    
    //zmniejszam amplitude
              
    for(unsigned int i = 0; i < size; ++i){
                   
         if(inputSample[i] >= 0)
         {
              inputSample[i] -= 10;               
         }
         if(inputSample[i] < 0)
         {
              inputSample[i] += 10;
         }
                   
          inputSample[i] += 128;                   
    }
    
    


    Teraz chciałbym zmniejszyć wartości próbek o 10 i wracam do poprzedniej postaci 0..255;

    W zamian dostaje zniekształcony sygnał. Na czym polega mój błąd? Proszę o pomoc, pozdrawiam
  • REKLAMA
  • #2 2678849
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA