atarionline.pl 4-bit samples - 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: CommentAuthorvega1
      • CommentTime5 Mar 2025 15:03 zmieniony
       
      cześć

      - czy jest jakiś gotowy konwerter do odpalenia z linii komend, żeby przerobić .WAV z PC na sampla 4-bit ATARI ?
      - czy jest gdzieś gotowa procedura w ASM do odgrywania tego na 4-tym kanale POKEY-a przy włączonym ekranie? np. na przerwaniu IRQ...

      Jeżeli nie ma to napiszę sam ale szkoda czasu jeżeli ktoś już napisał...

      Kart z grą bedzie miał 2MB więc mam ok. 0,5MB wolnego na karcie i chce zobaczyć jak będzie odtwarzać sample przy włączonym ekranie podczas gry.
      • 2: CommentAuthortebe
      • CommentTime5 Mar 2025 17:03 zmieniony
       
      napisał i korzystał w Space Harrier

      na 4-ym kanale

      ->link<-

      ->link<-
      • 3:
         
        CommentAuthorpirx
      • CommentTime5 Mar 2025 18:03
       
      jeśli chodzi o konwersję do 4-bit to jest straszna bieda, próbowałem coś znaleźć do sampla, którego puszczałem w "technical difficulties", ale generalnie kwas, marazm i żenada. Obcięcie do 4 najbardziej znaczących bitów wprowadza okropny szum kwantyzacji, procki i pluginy dostępne w sieci są do bani (tzn. chodzi w nich, żeby ten szum kwantyzacji uwypuklić).
      zacząłem pisać w pytongu własny konwerter, ale nie stykło czasu. generalnie pomysł mam taki, żeby emulować obwody analogowe i "przesamplować" "analogowy" sygnał tak, jakby miało się sampler 4-bit, używając jakiejś fancy szmancy interpolacji wielomianami przy wysokiej precyzji z pakietu mpmath i następnie samplowanie w momentach odtworzenia na atarce. Sam kod to tuzin linijek, ale trzebaby sporo czasu poświęcić na dopieszczenie parametrów.
      • 4: CommentAuthorvega1
      • CommentTime5 Mar 2025 18:03 zmieniony
       
      tebe: o fajnie...znalazłem coś takiego od space harrier...wygląda,że player mam

      no to jeszcze konwerter by się przydał...najlepiej z linii komend ale nie musi być koniecznie

      pirx: hmmmm...myślałem, że będzie prościej ;)
      • 5:
         
        CommentAuthorpirx
      • CommentTime5 Mar 2025 18:03
       
      a tutaj jak jeszcze się łudziłem, że da się to poprawić algorytmicznie wg. odp. literatury:
      ->link<-

      w interku jest finalnie wersja `noise_shape_and_quantize()`
      ale to wszystko syf malaria, zamiast czytać docki powinienem od razu próbować emulować analog.

      (syf malaria trochę lepsza, niż obcięcie bitów, ale ilość pracy, którą w to włożyłem nie uzasadnia zysku)
      • 6: CommentAuthorvega1
      • CommentTime5 Mar 2025 19:03 zmieniony
       
      trop z space harrier był strałem w 10-tkę

      tutaj
      https://forums.atariage.com/topic/123208-playing-samples/

      są 2 programy
      c:\>sox raygun-01.wav -r 4000 -1 raygun48.raw
      snd2gbw raygun48.raw raygun44.raw

      jednak lipa..wygasł link snd2gbw ...nie mogę tego znaleźć
      • 7:
         
        CommentAuthorpirx
      • CommentTime5 Mar 2025 19:03
       
      te narzędzia są grówniane, ale jeśli tylko chcesz, żeby coś tam grało, to coś tam będzie. moja szczyra rada - użyj normalizacji i kompresora (np. z audacity) , żeby wysycić cały zakres sampela.
      • 8: CommentAuthorvega1
      • CommentTime5 Mar 2025 19:03 zmieniony
       
      pirx...jeszcze nie wiem czy to wystarczające będzie...dopiero testy pokażą..ale te przykłady co tam są w space harrier to grają całkiem spoko...ale nie mogę znaleźć snd2gbw
      • 9:
         
        CommentAuthorpirx
      • CommentTime5 Mar 2025 20:03
       
      jak umiałbyś sobie zainstalować pytonga i numpy to możesz użyć tego mojego programiku, jest troszkę lepszy od tych, a jakbyś miał problem to Ci mogę na szybciora coś tam poprawić.
      • 10: CommentAuthorvega1
      • CommentTime5 Mar 2025 20:03
       
      pirx...pytonga nie używam...gdyby się dało z linii komend konwertować pod windą byłoby idealnie
      • 11:
         
        CommentAuthorshanti77
      • CommentTime5 Mar 2025 21:03
       
      Można jeszcze zwiększyć jakość sampli dodając "5" bit , uzyskamy to zapisując próbkę do dwóch rejestrów AUDC.
      • 12: CommentAuthorvega1
      • CommentTime5 Mar 2025 21:03 zmieniony
       
      shanti77...tutaj nie bardzo bo 3-kanały to muzyka będzie...mam tylko 1-szy kanał wolny

      ogólnie sox-em konwertuje do mono, 8-bit, 4KHz
      ale potem 8-bit na 4-bit to nie mogę znaleźć tego programu snd2gbw nigdzie...
      • 13:
         
        CommentAuthorjhusak
      • CommentTime5 Mar 2025 21:03 zmieniony
       
      To może ja.

      Po pierwsze, w Audacity robisz krok w kierunku zwiększonej głośności, czyli compressor. Ustawiasz dość agresywnie. W wyniku masz głośny wysycony sygnał.

      Zamieniasz na 8 bit PCM, zapisujesz jako raw, bez znaku.

      Zamieniasz to na 32 (5 bitów) poziomy przez przesunięcie o 3 bity w prawo

      Dodajesz 1, jeśli <31 (albo odejmujesz 1, jeśli nie 0)
      Przesuwasz w prawo o 1 bit.

      Tak masz nieszumiące (no, powiedzmy) 4 bity.

      Możesz się bawić filtrami dolnoprzepustowymi, ale ja się nie bawię, bo wysokie tony zagłuszają szumy kwantyzacji.

      Daj znać, jak wyszło :)

      -o-o-o-o-o-o-o-o-o-

      xxd -ps -c 1 untitled.raw | while read a; do t=`printf "%d" 0x$a`; (( t=((t>>3)+1)>>1 )); printf "%0x\n" $t ; done | sed s/10/f/ | xxd -r -ps >o.raw


      Troszkę długo konwerterek działa, ale za to prosty jest.
      • 14: CommentAuthorvega1
      • CommentTime6 Mar 2025 16:03 zmieniony
       
      Zamieniasz na 8 bit PCM, zapisujesz jako raw, bez znaku. - to rozumiem robię sox-em

      a to muszę napisać w pascalu ;)
      Zamieniasz to na 32 (5 bitów) poziomy przez przesunięcie o 3 bity w prawo
      Dodajesz 1, jeśli <31 (albo odejmujesz 1, jeśli nie 0) - czyli tylko dla 31 odejmujemy 1?
      Przesuwasz w prawo o 1 bit.
      Tak masz nieszumiące (no, powiedzmy) 4 bity.
      • 15: CommentAuthortebe
      • CommentTime6 Mar 2025 16:03
       
      no patrz Vega zajął się Street Fighter-em :)
      • 16:
         
        CommentAuthorCyprian
      • CommentTime6 Mar 2025 17:03
       
      @vega1

      t=((t>>3)+1)>>1 ))
    1.  
      ...here are some crappy WAV/SMP/SVX converters for the A8...
      • 18:
         
        CommentAuthoryerzmyey
      • CommentTime7 Mar 2025 07:03
       
      Jakub:

      A ja jeszcze po kompresji oryginalnego sygnału - robiłem potem ponowną kompresję sampla, już w wersji 4bit. To też daje pewien pozytywny efekt (dla całości utworu głównie, ale zawsze).

      Pzdrrrrrrrrrrrrrrrrrrr.
      • 19:
         
        CommentAuthorjhusak
      • CommentTime7 Mar 2025 09:03
       
      Jak by miało to działać na Atari? Bo jak robisz efekt do studyjnego nagrania to zgoda :)
      • 20: CommentAuthorvega1
      • CommentTime7 Mar 2025 17:03 (7 dni temu)
       
      jhusak: dzięki za receptę...jeżeli nie znajdę gotowca jakiegoś to wykorzystam
      • 21: CommentAuthortebe
      • CommentTime7 Mar 2025 18:03 (7 dni temu)
       
      pamiętaj! jeśli zrobisz coś samodzielnie to już nie jest tak dobre jak zrobił to ktoś inny ;)
      • 22: CommentAuthorvega1
      • CommentTime8 Mar 2025 17:03 (6 dni temu)
       
      CharlieChaplin I have seen it....unfortunatelly I need the PC converter...it's too many samples to convert...and too long samples
      • 23:
         
        CommentAuthorjhusak
      • CommentTime9 Mar 2025 00:03 (6 dni temu) zmieniony
       
      @vega1, toż taki konwerter raw -> 4 bity w C ze stdin do stdout to może z 5 minut roboty...
      • 24:
         
        CommentAuthorgienekp
      • CommentTime9 Mar 2025 13:03 (5 dni temu)
       
      jak rozumiem wejściem ma być WAV, ale co ma być wyjściem? W sensie jakiś plik (raw?) jaka częstotliwość próbkowania i jak dane lecą. W sensie bajty 0-15 gdzie środek jest w 8?
      • 25:
         
        CommentAuthorpirx
      • CommentTime9 Mar 2025 17:03 (5 dni temu)
       
      7
      • 26: CommentAuthormono
      • CommentTime9 Mar 2025 18:03 (5 dni temu)
       
      7.5
      • 27:
         
        CommentAuthorgienekp
      • CommentTime9 Mar 2025 20:03 (5 dni temu) zmieniony
       
      Dokładnie 7.5 :)
      Przechodzę przez float'a.
      Zrobiłem konwerter 16bit na 4bit i wcale to tak źle nie gra :)

      Edit.
      Wygląda na to, że takie proste shiftowanie i obcinanie bitów robi zakres 0-14. Na zakresie 0-15 jeden poziom to spora strata.

      Więc (16bit + 32768) / 65536 - znormalizowane 0 do 1
      mnożymy razy 15.5 i rzutujemy na bajta
      • 28: CommentAuthortebe
      • CommentTime9 Mar 2025 22:03 (5 dni temu)
       
      no i po co się produkujesz, skoro Miker udostępnił poszukiwany SND2GBW

      ->link<-

      program stosuje zawansowane Celestiańskie algorytmy, o których nikt nigdy nie słyszał :)
      • 29: CommentAuthorvega1
      • CommentTime9 Mar 2025 23:03 (5 dni temu) zmieniony
       
      tebe tak różowo to nie jest...to nie łazi pod win 64-bit...znowu kombinacje jakis win xp trzeba albo dos box...więc gienekp fajnie, że ogarnął...ja nie mam absolutnie casu...na czym innym się skupiam...a jest co robić
      • 30:
         
        CommentAuthormiker
      • CommentTime9 Mar 2025 23:03 (5 dni temu)
       
      Ma prawo tak działać. Mirror na webarchive był chyba z 2001r. a z którego mirrora faktycznie zassało, też cholera raczy wiedzieć.
      • 31:
         
        CommentAuthorgienekp
      • CommentTime10 Mar 2025 08:03 (5 dni temu) zmieniony
       
      Coraz częściej będziemy mieć sytuację, że coś już było. Ale albo brak bibliotek, albo brak źródeł, albo brak całego systemu. Software starzeje się szybciej niż sprzęt.

      Dlatego tylko <stdio.h>

      wav2a4b ->link<-

      wav2a4b file16bMono.wav out.bin test4b.wav

      test4b.wav - to od razu wyprodukowany wav przeznaczony do odsłuchu efektu końcowego

      Zauważyłem, że zmiana częstotliwości próbkowania powiedzmy z 44.1kHz na 4kHz dość mocno wpływa na amplitudę. Dlatego ile się da powinno się zrobić w jakimś programie muzycznym. Kompresja i normalizacja to chyba podstawa.
      • 32: CommentAuthorw1k
      • CommentTime10 Mar 2025 09:03 (5 dni temu)
       
      fajne, spróbuję dziś na Atari :D
      • 33:
         
        CommentAuthornogorg
      • CommentTime10 Mar 2025 12:03 (4 dni temu)
       
      Taka mała sugetia przy przygotowywaniu sampla do konwersji do niskiego sample rate: przy częstotliwości próbkowania 4 kHz nie przenoszą się żadne częstotliwości powyżej 2 kHz (Nyquist) więc _przed_ normalizacją i kompresją warto odfiltrować to co powyżej. W przypadku niektórych dźwięków lepiej sprawdza się zwykły clipper, niż kompresory i limitery. Ale tutaj trzeba sprawdzać na ucho - czasem lepsze jest jedno, czasem drugie, a czasem oba w odpowiednich proporcjach.
      • 34:
         
        CommentAuthorjhusak
      • CommentTime10 Mar 2025 12:03 (4 dni temu) zmieniony
       
      Nie zgadzam się. Nyquist w praktyce działa jak kupa na niskich częstotliwościach. Olewając Nyquista (albo stosując częściowo) osiągamy lepsze rezultaty w takich przypadkach.

      Wszystko dlatego, że nie ma filtrów o nieskończonej krzywej nachylenia (dobra są "prawie", ale źle się tego słucha). Stosując Nyquista zawsze odfiltrujemy część użytecznego sygnału.

      Więc nyquist tak, ale dla 4 khz odfiltrowujemy ze źródła częstotliwości >6-8 khz, a następnie przycinamy do 4 khz. I będzie lepiej. Podobnie, dla 8 khz odfiltrowujemy >12-16 khz. A dla 16 khz nie odfiltrowujemy nic, albo lekko najwyższe częstotliwości.
      • 35: CommentAuthortebe
      • CommentTime10 Mar 2025 13:03 (4 dni temu)
       
      może dodajcie wnioski stąd płynące, programy do 'Biblioteczki programisty' na AtariArea
      • 36:
         
        CommentAuthorjhusak
      • CommentTime10 Mar 2025 13:03 (4 dni temu)
       
      Jak ustalimy wnioski, to doda ten, komu najbardziej zależy.
      • 37:
         
        CommentAuthornogorg
      • CommentTime10 Mar 2025 13:03 (4 dni temu) zmieniony
       
      Zwrot w moim komentarzu "warto odfiltrować to co powyżej" nie oznacza, że należy literalnie ustalić na pałę jeden parametr odcięcia filtra na 2000 Hz i rżnąć wszystko jak leci nie patrząc na inne jego charakterystyki. Należy brać pod uwagę inne ustawienia filtra, jego rodzaj, w tym nachylenie, i ustawić wszystko optymalnie, aby uzysk dla dynamiki i brzmienia był jak najlepszy. Nie ma tutaj z czym się nie zgadzać.
      • 38:
         
        CommentAuthorjhusak
      • CommentTime10 Mar 2025 14:03 (4 dni temu)
       
      Teraz się zgadzam.
      • 39: CommentAuthorvega1
      • CommentTime10 Mar 2025 15:03 (4 dni temu) zmieniony
       
      jak dla mnie to fajnie już odtwarza sample pomimo 4KHz.to co napisał gienekp..ale jakby dało się coś jeszcze poprawić tym odfiltrowaniem...to już wogóle byłby wypas

      fajnie jakby też sample maksymalnie były podgłaśniane...na ile się da...
      • 40:
         
        CommentAuthorgienekp
      • CommentTime10 Mar 2025 15:03 (4 dni temu)
       
      No ja zejście do 4kHz robiłem Audacity. Zdaje się, że robi to widmem. Jeżeli nie to trzeba by taki program zrobić. Czyli najpierw fourier a potem odwrotny fourier.

      Następnie w Audacity kompresja i na koniec normalizacja. Dopiero takie coś zbijałem na 4 bity.
      Wtedy mamy maks głośność i sample w pełnym zakresie 0-15.

      Tak czy siak, chyba najlepiej każdego sampla doprowadzić jakimś programem muzycznym do możliwie jak najlepszej bazy, którą potem tnie się na bitach.

      Czemu w ogóle się przyjęło 4kHz?
      • 41: CommentAuthorvega1
      • CommentTime10 Mar 2025 16:03 (4 dni temu)
       
      tak sobie przyjąłem 4KHz bo tak jest w SPACE HARRIER a jak słuchałem to tam to brzmi całkiem OK...oczywiście to pewien kompromis...szybkość/jakość...na statycznych ekranach a nie w grze to pewnie więcej można bez problemu
      • 42:
         
        CommentAuthorMq
      • CommentTime10 Mar 2025 17:03 (4 dni temu) zmieniony
       
      4kHz to mi wychodzi, że jest granie 80x na ramkę. Żeby zagrać jednego sampla, to co trzeba zrobić? Pobrać bajt z przygotowanej tablicy i zapisać tylko do jakiegoś rejestru, czyli lda sta, czy coś jeszcze? Sorry ale nie wiem jak to się robi. Ale przy takim minimum, to by bylo 8 cykli, razy te 80x na ramkę, to by dawało 640 cykli na ramkę. Plus jakieś cykle na wywołanie przerwań i skoki do procedury grania. Robi się dużo już przy 4kHz. W grze to spore obciążenie.
      • 43: CommentAuthortebe
      • CommentTime10 Mar 2025 19:03 (4 dni temu)
       
      zapraszam do #4 posta od Vega1, jest przykład sample3.asm
      • 44:
         
        CommentAuthorgienekp
      • CommentTime10 Mar 2025 19:03 (4 dni temu) zmieniony
       
      Takie makro mi całkiem dobrze przygotowało "stado" próbek.
      Potem wav2a4b.
      • 45:
         
        CommentAuthorgienekp
      • CommentTime10 Mar 2025 23:03 (4 dni temu) zmieniony
       
      Efekty na niskich tonach to nawet fajne wychodzą
      • 46:
         
        CommentAuthornogorg
      • CommentTime10 Mar 2025 23:03 (4 dni temu) zmieniony
       
      • 47: CommentAuthorvega1
      • CommentTime11 Mar 2025 15:03 (3 dni temu) zmieniony
       
      BasPlum_org_nogorg_max04-4khz-4bit.wav

      to brzmi prawie jak oryginał...nieźle

      dobre wieści..gienekp makrami przygotował ok.220KB sampli do gry;) dzięki
      • 48: CommentAuthorbruno_j
      • CommentTime11 Mar 2025 23:03 (3 dni temu)
       
      4-bity mówicie? To to wam się pewnie spodoba. ;)
      • 49: CommentAuthorvega1
      • CommentTime12 Mar 2025 20:03 (2 dni temu) zmieniony
       
      gra muzyka, sample ładnie się odtwarzają

      może poza tematem...ale gdzie znajdę procedurę w ASM do odgrywania tego
      https://forums.atariage.com/topic/315537-rmt2lzss-convert-rmt-tunes-to-lzss-for-fast-playback/

      może przeoczyłem bo tam dużo stron jest...
      • 50: CommentAuthortebe
      • CommentTime12 Mar 2025 21:03 (2 dni temu) zmieniony