Aplituda syganłu pliku wav

Odpowiedz Nowy wątek
2017-11-21 17:56
0

Cześć,
Próbuję narysować wykres amplitudy sygnału z pliku wav. Po pobraniu danych do tabeli typu byte, odczytuję liczbę sampli na sekundę, kanałów i co mi tam potrzebne z nagłówka pliku. Z tego co się orientuję, wykres ma przypominać sinusoidę.
Potrzebuję zatem tablicy punktów , które mają mieć wartości y zawarte w [-1;1] i rozmieszczone w funkcji czasu.
Moje pytania:

  1. Jeśli do wyciągnięcia tych punktów potrzebuję utworzyć jakąś strukturę z próbkami, z których wyliczam tą amplitudę, to jak mam podzielić całą sekcję data z tego pliku?
  2. Jeśli potrzebne było próbkowanie, to co dalej robić z tymi próbkami? Jeśli nie, to po prostu - jak z tablicy bytes wyciągnąć amplitudę sygnału?

Piszę w c#, jeśli są jakieś biblioteki, które mogą mi pomóc, to proszę o info. Sprawdzałem NAudio, ale nie wiem czy z jej pomocą mogę łatwo wyciągnąć tą amplitudę.

Proszę o pomoc :)

Pozostało 580 znaków

2017-11-24 13:11
0
  1. Skoro potrzebujesz wykresu, musisz wyliczać kawałkami. Jak długi kawałek dźwięku brać pod uwagę to już eksperymentalnie musisz wyznaczyć według potrzeb.
  2. szukaj wartości max(abs()) w tablicy próbek (nie bajtów; próbki zazwyczaj są 16-bitowe)
  3. Jeśli plik jest stereo albo ma więcej kanałów przydałoby się dla każdego kanału liczyć osobno.
edytowany 2x, ostatnio: Azarien, 2017-11-24 13:11

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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