atarionline.pl wav2a4b - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthorgienekp
      • CommentTime15 Apr 2025 23:04 (15 godzin temu) zmieniony
       
      Podsumowując zabawę w tworzenie sampli dla ATARI zrobiłem prosty konwerter z WAV do sampla 4 bitowego. Wiem, że takie coś już było robione, ale jak znam życie to pewnie działa to tylko na starym WinXP z bibliotekami dawno zapomnianymi.

      Plika WAV powinien być bez kompresji czyli zwykły PCM, 16 bitowy mono lub stereo.
      Plik wyjściowy to wyprodukowany ciąg bajtów gdzie górne półbajtu to pierwsza próbka a dolne półbajtu do druga próbka itd.

      Częstotliwość wyjściową ustaliłem na 3906Hz, czyli 4 linie. Oczywiście jak ktoś chce inaczej to może sobie przekompilować program z innymi parametrami. Wszystko jest OpenSource, biblioteki podstawowe z C, a źródła są ->link<-

      Algorytm konwersji leci mniej więcej tak:
      - detekcja WAV, żeby wiedzieć jak go przeczytać
      - wczytanie WAV, jeżeli stereo to od razu konwersja do mono (obliczenia na zmiennym przecinku)
      - przesamplowanie do nowej częstotliwości; narazie zwykła średnia ważona, w przyszłości wstawie w to FFT i potem odwrotne FFT
      - konwersja do 4 bit z normalizacją, żeby wykorzystać na maksa dynamikę 4 bit; proste algorytmy robią najczęściej sample w zakresie 1-13 lub 1-14, to duża strata; tutaj powinno wyjść 0-15
      - wyrównanie długości sampla do strony; to można zmienić ale niektóre playery tak chcą
      - zapis wyniku

      Program leci z konsoli, dzięki temu można go skompilować na dowolny procek.

      Przykłady:

      Prosta zamiana wav na sampla
      wav2a4b filein.wav fileout.bin


      Zamiana na sampla i wyprodukowanie testowego WAV, żeby odsłuchać (oglądnąć w programie audio) wynik. Wynik to WAV 8-bit jeden kanał. WAV 8bit jest unsigned więc można zobaczyć i odsłuchać jak np. poziom zera się ustawił, czy nam jakaś harmoniczna nie śmieci itd.
      wav2a4b filein.wav fileout.bin test.wav


      Wyprodukowanie pliku XEX, żeby od razu sprawdzić na ATARI czy wynik do czegoś się nadaje. Tutaj limit to 40kB czyli 80k sampli, czyli jakieś 20 sekund.
      wav2a4b filein.wav fileout.bin test.wav test.xex


      Release jest na GitHubie dla windowsa i macos. Ale jakby ktoś chciał gotowca to exe poniżej.