Niech gra muzyka!
Dzisiaj rozruszamy nieco generatory dźwięku POKEY-a i spróbujemy w sposób łatwy i przyjemny odtworzyć muzykę w języku Action!
Tym razem nie będzie to grający kompilator Action! lecz przykładowa muzyczka napisana w edytorze muzycznym Raster Music Tracker – RMT. Nie czas to i miejsce aby nauczać obsługi tegoż, przeto poprzestaniemy na muzyczce wybranej z dosyć sporej biblioteki utworów demo dołączonych do RMT. W stopce artykułu znajduje się link do programu RMT oraz pomocniczy plik ACTION-RMT.ZIP – wypakuj go proszę np. na pulpit swojego komputera.
Krok 1: edytor RMT
Ekran programu RMT wygląda mniej więcej tak, jak poniżej. Przy pomocy opcji File>Load lub kombinacją CTRL+L możemy załadować utwór w formacie RMT. Przykładowe muzyczki znajdują się w folderze SONGS. Na tym etapie proszę poszukać muzyczki w wersji mono (4 TRACKS). Dla przykładu wybrałem utwór HAMMASTAHNA z folderu PG:
Teraz korzystając z opcji FIile>Export As zapisujemy jeszcze raz utwór podając nazwę dla pliku RMT oraz docelowe miejsce do zapisu, dla przykładu niech nazwą pliku będzie DEMO.RMT Po zapisie pojawi się okienko z kilkoma opcjami, na tym etapie najważniejsze jest pole FROM ADRESS (HEX), w którym należy wpisać adres pod którym dane muzyczki zostaną umieszczone w pamięci Atari. Ustalmy, że muzyczkę umieścimy od adresu $7000:
Krok 2: kompilacja odtwarzacza
Teraz czarna magia dla tych co kompletnie nie znają asemblerów, kompilatorów, linkerów i innych „rów”. Proszę się nie zrażać – nie będzie aż tak źle.
W pomocniczym pliku ACTION-RMT.ZIP najdują się między innymi pliki MADS.EXE oraz RMTPLAYR2.A65, z czego ten drugi to plik tekstowy z kodem źródłowym służącym do skompilowania modułu odtwarzacza dla naszej muzyczki RMT – zwanego dalej playerem. Otwieramy ten plik tekstowy dowolnym edytorem i szukamy linii z następującym wpisem:
PLAYER equ $9000
Ta linia informuje, pod jakim adresem zostanie skompilowany player dla naszej muzyczki. Ponieważ adres naszej muzyczki to $7000 to ustalmy, że player umieścimy poniżej muzyczki, np. pod adresem $6000, zmieniamy więc:
PLAYER equ $6000
Zapisujemy zmiany w pliku. Teraz zadbajmy aby wszystkie konieczne pliki znalazły się w jednym katalogu:
W folderze znajduje się także plik typu BAT o nazwie kompiluj.bat Jest to plik tekstowy a w nim polecenie kompilacji dla systemu Windows:
mads rmtplayr2.a65 -o:player.bin
Kliknięcie w plik kompiluj.bat utworzy (zgodnie z powyższym poleceniem) plik o nazwie PLAYER.BIN – tym samym dokończyliśmy dzieła tworzenia playera dla naszej muzyczki. Ufff.
Krok 3, odtwarzanie RMT w Action!
” I zagrał: róg jak wicher, wirowatym dechem
Niesie w puszczę muzykę i podwaja echem. „
Podpinamy folder z muzyczką i playerem tak by mieć do nich dostęp z poziomu emulatora lub komputera Atari. Polecenie FSTRUCT na plikach DEMO.RMT i PLAYER.BIN pokazuje rozmiary plików i adresy ładowania danych:
Są to pliku DOS-owe, posiadają 6 bajtowy nagłówek o czym należy pamiętać podczas ładowania pliku do pamięci. Mamy już wszystko co potrzebne, kod dla Action! może być np. taki:
Return
Posłowie.
Dokonałem tutaj świadomych uproszczeń, celem pokazania mechanizmu działania. Uważna lektura plików źródłowych zdradzi co tak na prawdę oferuje RMT. Chodzi o możliwości optymalizacji playera w zależności od tego jakie efekty zostały użyte w muzyczce, ile kanałów dźwiękowych zostało użytych i w jakiej konfiguracji. Są też obwarowania dotyczące tego, gdzie należy umieścić player i jakie są jego wymagania pamięciowe. Dla pierwszego kontaktu z RMT ta porcja podstawowej wiedzy powinna wystarczyć by z powodzeniem wprowadzić muzyczkę do własnego programu czy gierki w Action!
” Tu przerwał, lecz róg trzymał … „
Biblioteka:
- link do strony programu Raster Music Tracker
- pliki pomocnicze ACTION-RMT.ZIP