26

Draco - tak.

Czy ktokolwiek sprawdzał działanie plików *.MD2? - moim zdaniem to nie działa prawidłowo i daleko niestety do uzyskania takiego stanu ;)-

Kontakt: pin@usdk.pl

27

Wersja 0.3 do pobrania (stąd też).
- Zmieniłem player na Jaskrowy. Nie powinno się już tak spektakularnie krzaczyć, jak poprzedni.
- Poprawiłem też synchronizację procedur odgrywających syntetyki i sample dzięki czemu muzyka nie powinna spowalniać.
- Można też zrobić pauzę (poprzednio zaczynało grać od nowa).
Co mi się zdaje, to że sample nie stroją z instrumentami syntetycznymi podczas grania .MD2. Z .MD1 powinno być ok, bo to procedura, która była poprzednio używana. Fajnie gdyby się ktoś kompetentny wypowiedział.
Zapraszam do testowania i zgłaszania uwag oraz błędów.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

28

Pomijając potencjalną niepełnosprawność słuchu u kompozytorów utalentowanych niczym Człowiek_W_Atomizerze, sample mogą nie stroić, gdy player jest za długi lub procedura odtwarzająca sample nie zawsze wyrabia się w linii. W obu przypadkach średnia częstotliwość odtwarzanego dźwięku wędruje w dół. Objaw ten z oczywistych powodów jest słabiej słyszalny na samplach perkusyjnych, a MD1 chyba w większości stosują na samplach tylko perkusję. W MD2 za to często na samplach gra bas lub ścieżka wiodąca - miksowana z niewłaściwą częstotliwością będzie fałszować.
Spróbuj wyłączyć ekran i posłuchać, czy objaw nadal występuje. Jeśli pomoże, to coś trzeba skrócić. Jeśli player uruchamiasz na VBI, to powinien się wyrobić dość szybko (ostatni raz sprawdzałem to 7 lat temu i OIDP było to kilkanaście linii), za to na procedurkę od sampli czyhają pułapki w rodzaju każdej pierwszej linii ekranu w trybie tekstowym, gdzie czasu dla 6502 zostaje niewiele i możesz zgubić 24 z 156 okresów miksowania w ramce.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

29 Ostatnio edytowany przez mono (2011-08-17 15:43:57)

Zmodyfikowałem procedurę odgrywającą sample w taki sposób, że nie pozwalam na przejęcie kontroli, ale sam wywołuję odegranie 2 próbek. Zdaję sobie sprawę z tego, że to, co robię na zewnątrz aż do ponownego wywołania procedury może spowodować niestrojenie (właśnie z powodów o których napisałeś - dzięki), ale właściwie to nie ma tam tego wiele - właśnie chodzi mi o potwierdzenie zjawiska.
Procedury testuję sobie na 80 kolumnowym S2: od VBXE a tam ANTIC jest wyłączony, więc efekt powinien być chyba identyczny.

Edit: A nie 24 z 311.5 okresów (dla PAL oczywiście) :D?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

30

Player w wersji 0.4:
* zmieniono procedurę detekcji stereo na (c) by drac030,
* dodano obsługę plików .MPD,
* poprawiono synchronizację subtempa.

Smacznego.
Oczywiście bugs&reqs itd.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

31

mono napisał/a:

dodano obsługę plików .MPD

A masz przykładowy plik .MPD ?

https://www.youtube.com/watch?v=jofNR_WkoCE

32

Niestety nie. Właściwie to zasugerowałem się tym

asap.sourceforge.net napisał/a:

MPD (MPT DoublePlay)
    MPT with 6502 routine executed at double rate of the original MPT.

no i (może zbyt hurraoptymistycznie) dołożyłem w ciemno obsługę subtempa (przełączanego przez usera) i odtwarzanie 2x na ramkę playera dla pliku .MPD.
A co? Masz może jakiś przykładowy plik .MPD?

A póki co w kolejnej wersji jeszcze jest obsługa długich songów włączana za pomocą /S. Można np:

> MPTPLAY BOREMLOZ.MPT /S
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

33

Właśnie nie mam. :) Opierałem się wyłącznie na programie Jagera (jakiś commander), który miał napisane, że obsługuje MPD.
Co to jest subtempo?

https://www.youtube.com/watch?v=jofNR_WkoCE

34

Tempo to ilość ramek między kolejnymi pozycjami patternu. Subtempo rozumiem, jako ilość wywołań playera na jedną ramkę.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

35

mono napisał/a:

Tempo to ilość ramek

albo wywołań playera, bo w różnych formatach jest różnie.

https://www.youtube.com/watch?v=jofNR_WkoCE

36

Instrumenty nie są odgrywane zawsze co ramkę?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

37

OIDP (być może ŹP) w TMC 2 czas trwania jednej linii paternu niekoniecznie jest wielokrotnością ramki.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

38 Ostatnio edytowany przez mono (2015-06-12 12:46:10)

Ponieważ ten player był najbardziej zabagniony ze wszystkich, usiadłem i oto wersja 0.6.
Zmiany:
- poprawione odtwarzanie .MD1 i .MD2
- przełącznik /M SYNTH|DIGI1|DIGI2 pozwala na wymuszenie rodzaju modułu
- przełącznik /T [mm:]ss[.dd] pozwala na ustawienie maksymalnego czasu odtwarzania
- przełącznik /B pozwala wyłączyć ekran na modułach digitalizowanych
- przełącznik /A addr pozwala ustawić adres drugiego POKEY-a gdyby ktoś miał go niestandardowo :)
- poprawiona panorama dla wszystkiego (dla sampli również)
- sample mogą mieć rozszerzenie .DRM (bałagan z tymi roszerzeniami)
Powinno grać poprawnie zarówno na ANTIC/VBXE, jak i na 1.77/Rapidus.
W zmiennej środowiskowej MPTPLAY można ustawić często używane parametry.
Kolejność parametrów nie ma już znaczenia.
Bugi i życzenia mile widziane.
Smacznego.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

39 Ostatnio edytowany przez Pin (2015-05-30 00:10:35)

Dziękować, jak dotrwam to pierwsze uruchomienie dziś ;)

EDIT:

BUG rep#1:

zatrzymaj odgrywanie modułu MPT spacją. Spróbuj w dowolnie wybrany sposób (oprócz reset i wyłączenia komputera) wyjść do DOS ;).

EDIT:

poza tym, jak na razie częstotliwości odgrywania sampli jak do tej pory są całkowicie prawidłowe. Tak, jak mówiłem szczekam z utęsknieniem na "reverse stereo" made by MacGyver i Megaplayer ;)

EDIT:

Na rapidusie 16Mhz i vbxe przy wszystko ok, MPT ze samplami zajmuje tak na oko 2 w porywach do 3 linie ekranu.

Kontakt: pin@usdk.pl

40 Ostatnio edytowany przez Pin (2015-05-30 01:14:39)

MD2 na Rapidusie grają niepoprawnie. Sample grane są jak by w tej samej częstotliwości, ale wycina próbki. Tak mi się wydaje.

EDIT:

viceversa.mpt pieje, jak kogut z rana. Na Rapidusie.

EDIT2:

Bez turbo też pieje. Albo moduł z***, albo player coś nawala tu.

Kontakt: pin@usdk.pl

41 Ostatnio edytowany przez mono (2015-05-30 12:21:09)

Okazuje się, że niektóre utwory ponazywane są .MD1 gdy tymczasem powinny być .MD2. I tak jest z VICVERSA.MD1 i np. MOON.MD1.

Edit: Co można w takiej sytuacji zrobić:
1. Zmienić rozszerzenie modułu.
2. Użyć przełącznika /M DIGI2.

Z innej beczki (choć w tej podobie) - w przypadku kiedy mamy do czynienia z MD1 a sample mają rozszerzenie .SMP lub .DRM, wtedy player zakłada częstotliwość 15kHz. Jeśli sample mają być odtwarzane z 8kHz wtedy można:
1. Zmienić rozszerzenie sampla.
2. Użyć przełącznika /L.

Z jeszcze innej beczki - niektóre moduły zapętlają się w kółko, lub wyraźnie kończą się ale zamiast rozkazu $FE w tracku użyty jest skok o pattern wyżej ($FF z numerem pozycji). Skutkuje to odtwarzaniem w nieskończoność.
Może przydać się wtedy opcja /T 3:00 umożliwiająca ustawienie maksymalnego czasu odtwarzania utworu.

Gorąco polecam też ustawianie parametrów w zmiennej środowiskowej zamiast w RUNEXT.CFG. Dlaczego? Otóż SDX bazując na definicji wywołania z RUNEXT.CFG składa całą linię, która jest uruchamiana przez system. A bufor linii poleceń ma jak wiadomo tylko 63 znaki, więc przy sporej liczbie często używanych przełączników kompletne wywołanie może się nie zmieścić.
Zmienna środowiskowa ma tę zaletę, że nie jest dołączana do wywołania polecenia, a jest przetwarzana po uruchomieniu programu, ale przed parsowaniem linii poleceń. Wywołanie komendy jest więc krótkie, a co najfajniejsze - można wywołując program w linii poleceń nadpisać działanie przełączników wstawionych do zmiennej środowiskowej.
Tak więc:

SET MPTPLAY=/XBT 3:00 /P -1,1,1,-1

będzie wyłączało ekran ANTIC-a podczas grania modułów digitalizowanych, wyświetlało szczegóły budowy modułu, ustawi maksymalny czas trwania utworu na 3 minuty i ustawi panoramę dźwięku tak, jak robi to MegaPlayer dla każdego wywołania programu, ale wywołując z palca:

BOREMLOZ.MPT /T 0 /P 0,0,0,0

(mając oczywiście podmapowane rozszerzenie MPT w RUNEXT.CFG) spowodujesz, że dla tego wywołania zmieni się panorama każdego kanału na środek i kawałek będzie grał w nieskończoność.

Edit 2: Na koniec jeszcze mała dygresja :) Sposób działania RUNEXT.SYS i playera powoduje że:
a) najpierw przetworzone zostaną kolejno parametry umieszczone w zmiennej środowiskowej,
b) W następnej kolejności będą przetwarzane parametry podane w linii poleceń złożonej wg definicji w RUNEXT.CFG. Więc dwa przykłady:
1. RUNEXT.CFG:

MPT,MPTPLAY,% /T 0

spowoduje zawsze odtwarzanie utworu w nieskończoność niezależnie od tego, jaki /T podasz z palca.
2. RUNEXT.CFG:

MPT,MPTPLAY,/T 3:00 %

spowoduje, że domyślnie utwory będą grać 3 min, ale z palca możesz przełącznikiem /T zmienić ten czas (lub go zniwelować sposobem opisanym wyżej).

Edit 3: Oczywiście przy intensywnym korzystaniu ze zmiennych środowiskowych przyda się ENV.SYS.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

42

Dzięki.

Pin napisał/a:

BUG rep#1:
zatrzymaj odgrywanie modułu MPT spacją. Spróbuj w dowolnie wybrany sposób (oprócz reset i wyłączenia komputera) wyjść do DOS ;).

Faktycznie. Poprawione. Proszę ściągać wersję z ostatniego miejsca.

Pin napisał/a:

poza tym, jak na razie częstotliwości odgrywania sampli jak do tej pory są całkowicie prawidłowe. Tak, jak mówiłem szczekam z utęsknieniem na "reverse stereo" made by MacGyver i Megaplayer ;)

Później. Na razie musi poprawnie grać :)

Pin napisał/a:

MD2 na Rapidusie grają niepoprawnie. Sample grane są jak by w tej samej częstotliwości, ale wycina próbki. Tak mi się wydaje.

Zbadam w czym rzecz. Obszar rejestrów hardwareowych chodzi ze standardową prędkością?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje