Zapętlenie okresowych *.wav

0

Mam pliki .wav pochodzące z jakiegoś generatora , dosyć krótkie .
Chciałbym je zapętlić .
Jednak przy zapętleniu w jakimś np. Odtwarzaczu na początku odtwarzania i
bardzo wyraźnie na końcu (podejrzałem na razie graficznie że sinus jest ucięty w szczycie)
następuje "stuk" .
Jak do tego podejść 'programowo' aby się nie tłukło po zapętleniu.
Nie sprawdzałem jeszcze na fun PlaySound , ale skoro w Playerze go słychać
to i pewnie tutaj będzie .
Nie wiem kombinować coś z utworzeniem pliku w pamięci i próbować przesunąć
(?dociąć) dane w buforze tak żeby koniec dokładnie dopasować do początku ,
pomoże to coś ?

0

Odetnij ostatni półokres w miejscu przechodzenia przez zero. Czyli zwyczajnie ustaw programowy próbnik sampli na końcu bufora, cofaj go w tył, i utnij w miejscu gdzie znak próbki się zmieni, lub gdy próbka będzie zerowa. W ten sposób tracisz nic nie znaczące 25µs - 25ms dźwięku.
Ewentualnie odetnij (lub zmniejsz amplitudę) jeszcze jednego półokresu, gdy DC całości nie jest zerowe (DC bias removal).

Zamiast wyrównywać DC, możesz też zduplikować próbkę dźwięku negując jej wszystkie dyskretne próbki (b[n] = -a[n]) i odtwarzać w pęli na przemian oba bufory. Dżwięk będzie identyczny, a ewentualne przesunięcie zera wprowadzone przez pierwszy bufor zostanie zlikwidowane przez zanegowany bufor.

Gdy DC nie będzie zerowe, ciągłe odtwarzanie spowoduje przesunięcie zera w układach analogowych do skrajnej wartości (ładowanie kondensatorów ponad/poniżej 0V lub 1/2Ucc), w której jedne półokresy (dodatnie lub ujemne) mogą być obcinane przez diody zabezpieczające przed przepięciami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1