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.
Post's attachmentsinsert1fixed.obx 262 b, liczba pobrań: 1 (od 2015-07-22)
insert2fixed.obx 262 b, liczba pobrań: 1 (od 2015-07-22)
Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje