Próbuję narysować kształt fali z nieprzetworzonego pliku audio. Demuxowałem/dekodowałem plik audio przy pomocy FFmpeg i mam te informacje: bufor próbek, rozmiar bufora próbek, czas trwania pliku audio (w sekundach), częstotliwość próbkowania (44100, 48000, itp.), Wielkość próbki, próbka format (uint8, int16, int32, float, double) i same nieprzetworzone dane audio.Algorytm do generowania kształtu fali z audio
Kopanie w Internecie znalazłem ten algorytm (więcej here):
White Noise:
algorytmu
Wszystko, co musisz zrobić, to losowo każda próbka od -amplitude do amplitudy. W większości przypadków nie zależy nam na liczbie kanałów, więc po prostu wypełniamy każdą próbkę nową liczbą losową.
Random rnd = new Random();
short randomValue = 0;
for (int i = 0; i < numSamples; i++)
{
randomValue = Convert.ToInt16(rnd.Next(-amplitude, amplitude));
data.shortArray[i] = randomValue;
}
To naprawdę dobre, ale nie chcę, aby zwrócić w ten sposób, ale w ten sposób:
Czy istnieje algorytm lub pomysł jak mogę być rysowanie za pomocą informacje, które mam?
Wygląda na to, że próbujesz użyć algorytmu generującego fale ** generującego **, gdy już masz swoją falę. Brzmi dla mnie tak, jakbyś nic nie robił. – Galik
@Galik - Co masz na myśli mówiąc "już masz swoją falę"? Jedyne, co mam, to informacje o surowym pliku wymienionym powyżej, teraz szukam algorytmu do narysowania fali za pomocą tych informacji. – yayuj
Cóż, połączone algorytmy nie mają nic wspólnego z rysowaniem fali. Generują falę. Wygenerowałeś falę, używając ffmpeg do konwertowania nieprzetworzonych danych dźwiękowych. Więc nie potrzebujesz generatora. Sądzę, że być może potrzebujesz czegoś w rodzaju GUI framework, który pozwala rysować rzeczy na ekranie. – Galik