atarionline.pl SOFTSYNTH Player - 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: CommentAuthormono
      • CommentTime16 Jul 2015 20:07
       
      Player modułów SoftSynth-a dla SDX.
      Funkcje:
      - często używane parametry w zmiennej środowiskowej SSPLAY,
      - detekcja drugiego POKEY-a,
      - panorama /P p1,p2,p3,p4 w przypadku dźwięku stereo.
      Programik gra trochę niżej (16 cykli CPU na cykl odtwarzacza) ze względu na panoramowanie stereo.
      Program nie obsługuje rozkazów "/".
      Proszę uruchamiać na standardowej prędkości Atari (dla Rapidusa na razie nie są przeliczane częstotliwości i czasy).

      Wszelkie bugi i żądania mile widziane.
      Smacznego.
      P.S. Z programem załączyłem wszystkie znalezione muzyczki.
      P.P.S. Wymagana SDX 4.47.

      UWAGA! Ze względu na fakt, że sam SoftSynth nie definiuje domyślnego rozszerzenia (i praktyka pokazała, że muzycy nie nadają), to jeśli ktoś chciałby korzystać z RUNEXT.SYS, musi sobie zdefiniować własne rozszerzenie. Bezwzględnie nie zaleca się definiowania przypisania:
      ,A:>SSPLAY.COM

      dla pustego rozszerzenia, ponieważ będzie łapało wszystkie polecenia DOS-a np. MEM.
      • 2:
         
        CommentAuthorjhusak
      • CommentTime16 Jul 2015 23:07
       
      Szalejesz Mono! Brawo!

      Ja ze swojej strony też bym prosił binarkę na normalne dosy...
      • 3: CommentAuthormono
      • CommentTime16 Jul 2015 23:07
       
      Niestety. Nie posługuję się CIO więc normalne DOS-y odpadają :/ W normalnych DOS-ach nie ma też linii poleceń i zmiennych środowiskowych, tak więc sopd mojej ręki raczej nie wyjdzie wersja dla normalnych DOS-ów.
      Ale mogę się podzielić źródłami :)
      • 4: CommentAuthorpin
      • CommentTime17 Jul 2015 00:07
       
      Dodatkowo w "normalnych" dosach jest też problem ze składowaniem znacznej ilości plików w jednym katalogu. W dołączonym archiwum na dzień dobry jest 156 plików, więc tylko Sparta to udźwignie.

      Mono - pierwsze wnioski na aa ;)
      • 5: CommentAuthorpin
      • CommentTime17 Jul 2015 01:07
       
      Kuba - mógłbyś podlinkować cover w SS, który wystawiałeś na którymś z ostatnich zlotów? Nie mogę tego teraz namierzyć ;)
      • 6: CommentAuthormono
      • CommentTime17 Jul 2015 01:07
       
      @pin: Nazywa się to Radioactivity i było wystawiane na Wapniaku 2013: ->link<-
      • 7: CommentAuthorpin
      • CommentTime17 Jul 2015 01:07
       
      gratuluję poczucia humoru ;) - do czego mi potrzebny SAP? :D

      .. a player faktycznie gra sporo niżej.
      • 8:
         
        CommentAuthormiker
      • CommentTime17 Jul 2015 06:07
       
      Nie marudź, Pinek... Smacznego. :)
      • 9:
         
        CommentAuthorjhusak
      • CommentTime17 Jul 2015 08:07
       
      @pin, proszę bardzo:
      ->link<-
      ->link<-
      • 10: CommentAuthormono
      • CommentTime17 Jul 2015 10:07
       
      @pin: Jak sap? W zipie jest atr ze śródłami.
      • 11: CommentAuthorpin
      • CommentTime17 Jul 2015 11:07
       
      w tagach napisano, że SAP więc doszedłem do wniosku, że to tylko to.

      ok - dzięki za źródła.
      • 12:
         
        CommentAuthorjhusak
      • CommentTime17 Jul 2015 14:07
       
      To ja poproszę jeszcze opcję na jednego pokeya. Wtedy będzie grał tak, jak w oryginale.
      • 13: CommentAuthormono
      • CommentTime17 Jul 2015 15:07
       
      Oczywiście.
      • 14: CommentAuthorpin
      • CommentTime17 Jul 2015 16:07
       
      Mono - chyba, że opcja stereo wyłącznie dla Rapidusa, bo w takim przypadku nie ma mowy o tym, by coś zwalniać miało ;)

      .. chyba, że da się coś tam zoptymalizować ..
      • 15: CommentAuthormono
      • CommentTime17 Jul 2015 16:07
       
      Kiedy znajdę wzór wg którego przeliczane są częstotliwości, wtedy będzie poprawka dla stereo i dla Rapidusa. W stereo częstotliwość syntezy będzie niższa ze względu na konieczność zapisu do dwóch POKEYów. Będzie przełącznik włączający oryginalną procedurę SoftSyntha.
    1.  
      Hmmm,

      a Softsynth player for a DOS 2.x version would be cool. Besides, Turbo-DOS XL/XE (Reitershan), DOS XL (OSS) and a few other DOS 2.x versions do have command line and even batchfile-processing available !! (And there are also several command processors for DOS 2.0 and DOS 2.5 available).

      Last not least, is this player for SDX only - or will it also work with Sparta-DOS/Bewe-DOS/Real-DOS (generally known as SDFS - Sparta DOS File System(s)) ??? Bewe-DOS allows up to 1424 files in one directory (without using subdirs, more files when using subdirs), if the disk or image has enough space available...
      • 17:
         
        CommentAuthorjhusak
      • CommentTime17 Jul 2015 22:07 zmieniony
       
      Obawiam się, że nic nie szkodzi na przeszkodzie, aby softsynth na rapidusie grał 44.1khz. Z pełną świadomością to mówię, moje utwory będą inaczej brzmiały, bo niektore z nich wykorzystują aliasing jako efekt.

      Na dodatek można rozwinąć procedurę grającą na 8 kanałów i wtedy _być może_ pójdzie to na rapidusie w 44.1 khz, a jak nie, to w 32 khz na pewno.

      Softsynth gra gdzieś tak ok. 12khz (gdzieś widziałem dość dokładny opis, jak to jest liczone), można obliczyć wg cykli głównej pętli.

      Ma ktoś Rapidusa dla Husaka? (do sprzedaży oczywiście...) Może... Lotharek?
      • 18: CommentAuthormono
      • CommentTime18 Jul 2015 03:07 zmieniony
       
      Pełna procedura syntezy trwa 148 cykli procesora.
      Przerwanie NMI taktujące player co 78 linii skaningowych zabiera po 21 cykli.

      Zegar CPU w PAL to 1773447 Hz.
      Linia trwa 114 cykli CPU.
      Odświeżanie pamięci zabiera 9 cykli na linię (ANTIC wyłączony).

      W sekundzie mamy 15556,5526316 linii.
      W sekundzie odświeżanie pamięci zabiera 140008,973684 cykli.
      W sekundzie przerwania NMI zabierają 4188,30263158 cykli.
      W sekundzie CPU ma 1629249,72368 wolnych cykli na syntezę.
      Częstotliwość syntezy wynosi 11008,4440789 Hz.

      Obliczenia są optymistyczne. Zależnie od tempa co n przerwań NMI jest dłuższe o 4 cykle, nie liczyłem cykli zabieranych przez ANTIC na pobranie rozkazu DLIST. Czasem procedura syntezy wydłużana jest o 2 cykle (pewnie podczas jakichś modulacji - kanał 3 jest używany wtedy do obliczeń) - dawałoby to wtedy 10861,6648245 Hz. Przy dalszym uwzględnieniu DMA ANTIC-a pewnie jeszcze mniej.

      Ale podczas działania playera procedura syntezy jest wywoływana co kilka instrukcji więc lokalnie ta częstotliwość też pewnie nieco spadnie - można chyba oszacować, że finalnie dostaniemy z 10500 Hz, może 10000 Hz.
      • 19: CommentAuthormono
      • CommentTime18 Jul 2015 16:07 zmieniony
       
      Zrobiłem drobny test. Wpisałem mianowicie w pliku programu nutę o wartości delta=$100. SoftSynth wyliczył, że częstotliwość dla tego czegoś ma być 43.2 Hz. Ponieważ fala ma 256 bajtów, to zakładana częstotliwość syntezy wynosi wg Autora 11059.2 Hz.

      Edit: Zagrałem C sinusem i na widmie (4096 pt) wykazało częstotliwość 261 Hz, czyli dokładnie C. Czyli Autor miałby rację. Player stereo gra dokładnie 2 półtony niżej (233 Hz czyli A#-1).
      • 20: CommentAuthormono
      • CommentTime22 Jul 2015 12:07 zmieniony
       
      Wersja 0.2 playera.
      Zrobiłem pomiar częstotliwości odtwarzania i przeliczanie częstotliwości do prędkości maszyny.
      Poprawki wymagały:
      - nuty,
      - odległości w interferencjach (INT),
      - głębokość wibracji (VIB),
      - częstotliwość i głębokość glissanda (>).
      Dodatki:
      - "opcja 0" czyli /0 - włącza oryginalny player dla jednego POKEY-a,
      - /Q wyłącza wypisywanie tekstów instrukcją "?",
      - /A adres drugiego POKEY-a,
      - automatyczne rozszerzenie .SS :],
      - instrukcja "?" wypisuje teksty na konsoli.
      Domyślnie odpalany jest player zmodyfikowany.

      Nasunęło mi się kilka wniosków:

      1. Zmodyfikowana procedura dla stereo powoduje niższą częstotliwość odtwarzania. Niesie to za sobą ograniczenia w wartościach regulujących interferencje - w oryginalnym SoftSynth maksymalnie można interferować o 43 Hz. Zmodyfikowany player nie będzie grał poprawnie interferencji wysokich - górna granica leży gdzieś na poziomie 36 Hz. Da się to naprawić w innym miejscu playera lecz wymaga zmiany wewnętrznego formatu zapisu danych w MASIC-u. Na razie więc odpuściłem, tym bardziej że w dostępnych utworach dźwięki interferują o 1,2,3 Hz.

      2. Ponieważ interferencje i wibracje przebiegają wolnozmiennie, to dla CPU szybszych niż standardowe 1.77 MHz wyliczane delty są mniejsze, a co za tym idzie należałoby dołożyć dodatkowy bajt dla osiągnięcia odpowiedniej precyzji, co z kolei powoduje wydłużenie pętli syntezy o kolejne 32 cykle. Dla standardowego Atari 1.77 MHz częstotliwość syntezy spada wtedy do 8293 Hz, co w porównaniu z 10983 Hz osiąganym przez standardowy player oznacza syntezę z prędkością 75% oryginału. Myślę więc, że nie warto modyfikować dalej playera pod kątem standardowego Atari 1.77 MHz, za to warto to zrobić dla turbo (X14, Rapidus, itd.).

      3. Glissando w SoftSynth definiowane jest np. tak:
      100 1,C,15,100,100,>C1,głębokość,czas przejścia

      Mam poważne obawy, że czas przejścia jest przez player SoftSynth-a ignorowany! Czy ktoś mógłby to potwierdzić?

      4. W artykułach w "Moje Atari 1990 nr 2" i "Moje Atari 1991 nr 3" dotyczących SoftSynth-a, częstotliwość C opisana jest jako 216 Hz - w rzeczywistości jest to 261 Hz.

      5. Podczas stosowania efektów player (również oryginalny) potrafi zwolnić - słychać to np w utworze Kuby Husaka Radioactivity. Czy da się takie sytuacje skorygować podbijając np częstotliwość nuty o 1, 2 Hz?

      6. Stosowanie panoramy dźwięku (/P) jest ograniczone przez interferencje kanałów i dlatego przy sztywnej separacji kanałów na różne układy muzyka może grać niepoprawnie - pozostaje to tylko jedynie jako ciekawostka, gdyby ktoś chciał poeksperymentować. Prawdziwe korzyści dałaby synteza na 8 kanałach (dwóch układach) ze sztywno przypisanymi kanałami 1..4 do lewego POKEY-a, oraz 5..8 do prawego POKEY-a. I może taką modyfikację warto by zrobić. Oczywiście bez dodatkowych narzędzi pozwalających na przetworzenie źródła programu w MASIC-u do modułu .SS i listującego .SS w postaci źródła programu się nie obejdzie. Tudzież trackera pozwalającego na komponowanie takich utworów. No ale to ma szansę zadziałać na dopale. Do gołego Atari proponuję oryginalnego SoftSynth-a.

      7. Problem z odpaleniem oryginalnego SoftSynth-a pod różnymi DOS-ami polega na dwóch plikach: INSERT1.SYN i INSERT2.SYN, które lokują się w obszarze $600..$70F. W załączeniu zoptymalizowane pliki INSERT1.SYN i INSERT2.SYN pozwalające na działanie SS np. z U-BASIC-em by Draco. Prawdopodobnie Draco w swojej wersji SoftSynth-a pracującej pod SDX to zrobił więc dla tamtej wersji proszę nie aplikować poprawki - poprawka jest wyłącznie na oryginalną wersję SoftSynth-a.

      Tak więc przez wzgląd na małą precyzję akumulatora fazy player nie będzie poprawnie grał muzyczek na dopalonym Atari i należy go traktować tylko testowo. Dźwięk nut nie powinien odbiegać od oryginału - problematyczne są tylko efekty.
      Player w "opcji 0" powinien grać poprawnie wszystko, bo nie jest modyfikowany :)

      Zapraszam do testowania.
      • 21:
         
        CommentAuthorjhusak
      • CommentTime22 Jul 2015 13:07
       
      1. Postuluje rozszerzenie SSY jednak :D
      2. Zapewne Radioactivity gra wolniej/szybciej ze względu na różną ilość danych do przetworzenia POMIĘDZY wywołaniami procedury grającej (czyli tej 200Hz) Nieda się tego zbić nutami.
      Czy mam rację?
      3. Zrobiłeś sobie listing w ASM (dis65) czy na gorąco analizujesz?
      • 22: CommentAuthormono
      • CommentTime22 Jul 2015 14:07
       
      Zrobiłem listing w da65.
      .SSY będzie w kolejnej wersji.
      Radioactivity - rozumiem dlaczego gra wolniej. Szkoda, że nie można skorygować :/
      • 23: CommentAuthorbob_er
      • CommentTime22 Jul 2015 16:07
       
      @mono: Dlaczego SDX tylko w wersji 4.47? Używasz tam czegoś dodatkowego, czy tak z rozpędu wpisałeś (a wystarczy np. dowolna wersja 4.x?)
      • 24: CommentAuthormono
      • CommentTime22 Jul 2015 16:07 zmieniony
       
      Powinna wystarczyć 4.46 - do pobierania adresu używany jest U_GETNUM. Choć być może do U_SLASH potrzebna jest wersja wyższa (w 4.47 wprowadzono możliwość sprawdzenia czy przełącznik jest ostatni w sekwencji - do opcji typu "/A adres").

      Edit: Ale wtedy nie zadziałają tylko przełączniki /P i /A.
      • 25:
         
        CommentAuthorjhusak
      • CommentTime22 Jul 2015 21:07
       
      Radioactivity można byłoby skorygować, gdyby można było zmieniać tempo z większą dokładnością (a może można, tylko o tym nie wiem?)
      • 26: CommentAuthorpin
      • CommentTime22 Jul 2015 22:07
       
      "Nie wiem" w tym przypadku nie brzmi nader optymistycznie ;)-
      • 27: CommentAuthorpin
      • CommentTime22 Jul 2015 22:07
       
      .. nawet dwa półtony niżej :D
      • 28: CommentAuthormono
      • CommentTime23 Jul 2015 13:07 zmieniony
       

      Charlie Chaplin:

      Hmmm,

      a Softsynth player for a DOS 2.x version would be cool. Besides, Turbo-DOS XL/XE (Reitershan), DOS XL (OSS) and a few other DOS 2.x versions do have command line and even batchfile-processing available !! (And there are also several command processors for DOS 2.0 and DOS 2.5 available).

      I don't plan version for Atari DOS (and compatibilities), because SDX is IMHO much more flexible. But if somebody wants to make it I can share sources.

      Charlie Chaplin:

      Last not least, is this player for SDX only - or will it also work with Sparta-DOS/Bewe-DOS/Real-DOS (generally known as SDFS - Sparta DOS File System(s)) ??? Bewe-DOS allows up to 1424 files in one directory (without using subdirs, more files when using subdirs), if the disk or image has enough space available...

      I didn't ever use these DOS-es (exception is Sparta DOS 3.x), but I think SDFS support is not enough to play. I use SDX API (COMTAB, symbols and relocating codeblocks) and if an other DOS guarantee compatibility in this point I think player could runs with it. Just test it :) But I'm afraid it won't work :/
    2.  
      Yes,

      looks like it does not work. Tried it under Bewe-DOS 1.30 (with Basic switched off), it loads a few "sectors" of SSplay.COM and then Error 152 appears...
      • 30: CommentAuthorpik33
      • CommentTime30 Jun 2016 14:06
       
      "Z pełną świadomością to mówię, moje utwory będą inaczej brzmiały, bo niektore z nich wykorzystują aliasing jako efekt."

      A ile ja się namęczyłem w PC-Softsynth coby w "Opanowaniu Swiata" częstotliwości grzecznie odbijały się i od zera i od 11 kHz :)