Errata!¢---------------------------------------¢ Jak si❎ okazao, w artykule "Popularne¢formaty muzyczne" wyst⇧piy dwa b❎dy¢(a przynajmniej tyle znalazem pisz⇧c¢now⇧ wersj❎ Smarta). Chodzi mi o puste¢patterny w CMC i tabel❎ adresw sampli¢MPT. Poniewaə poprzedni numer "Syzygy"¢nie by zbyt wygodny w obsudze, poni-¢əej zamieszczam jeszcze raz opis tych¢formatw (naturalnie poprawiony). Mam¢nadziej❎, əe znajdzie si❎ na dysku w¢postaci DOCka.¢ Chrl¢¢Stosowane oznaczenia:¢¢ M - modsza powka bajtu,¢ S - starsza powka bajtu.¢¢¢Format moduu CMC v2.0¢---------------------------------------¢Plik binarny.¢¢Adres wzgl❎dem pocz⇧tku w pami❎ci¢ ¢>$000 nagwek (cmc data file);¢¢>$013 tempo utworu (max. 99);¢¢>$014 modsze bajty adresw patternw;¢>$054 starsze bajty adresw patternw;¢ Jeəeli pattern jest pusty, to ma¢ starszy bajt adresu rwny $ff;¢¢>$094 parametry instrumentw¢ (26ins. * 6 bajtw);¢¢ Poszczeglne bajty oznaczaj⇧:¢¢ 1) M - rodzaj akcentu,¢ S - transpozycja akcentu;¢¢ 2) M - rodzaj d♪wi❎ku CMC,¢ S - r. znieksztacenia Atari;¢¢ ustawione bity 3/4 oznaczaj⇧:¢ 3-ci - d♪wi❎k wznosz⇧cy si❎ ,¢ 4-ty - d♪wi❎k opadaj⇧cy ;¢¢ 3) M - transpozycja d♪wi❎kw¢ wibruj⇧cych i dwukanaowych,¢ S - transpozycja podstawowego¢ d♪wi❎ku;¢¢ 4) czas wybrzmiewania d♪wi❎ku¢ ($00 oznacza d♪wi❎k ci⇧gy);¢¢ 5-6) tablica akcentw (15 bitw,¢ najmodszy bit 6-go bajtu¢ nie jest wykorzystywany);¢¢¢>$130 dane go③no③ci instrumentw¢ (26ins. * 8 bajtw);¢¢ Go③no③⇨ jest zapisana w kolej-¢ no③ci M/S, dlatego S 8-go bajtu¢ nie jest wykorzystywana (S=0);¢¢>$200 dane tracku 1;¢¢ Poszczeglne warto③ci oznaczaj⇧:¢¢ $00-$3f - nr pat. do zagarania,¢ $8f - komenda "stop" (④④)¢ $9f - komenda "jump" (J:)¢ $af - komenda "up" (:)¢ $bf - komenda "down" (:)¢ $cf - komenda "tempo" (T:)¢ $df - komenda "repeat" (R:)¢ $ef - komenda "back" ()¢ $fe - puste pola w 3 trackach,¢ $ff - puste pole.¢¢>$255 dane tracku 2;¢¢ Znajduj⇧ si❎ tutaj numery pat.¢ do zagrania, tudzieə argumenty¢ komend tracku 1;¢ Puste pole - $ff.¢¢>$2aa dane tracku 3;¢¢ Znajduj⇧ si❎ tutaj numery pat.¢ do zagrania, tudzieə drugi¢ argument dla komendy "repeat";¢ Puste pole - $ff.¢¢ W edytorze mamy do dyspozycji 84¢ pola w kaədym tracku. W rzeczy-¢ wisto③ci jest ich 85, ale w tym¢ ostatnim znajduje si❎ komenda¢ "back" playera.¢¢>$2ff bajt niewykorzystywany=$ff;¢¢>$300 dane patternw.¢¢ Poszczeglne warto③ci oznaczaj⇧:¢¢ $00-$19 - nr instrumentu,¢ $40-$7e - nr d♪wi❎ku do zagrania,¢ $80-$bd - puste pola w patternie¢ ($7f + ilo③⇨ pl),¢ $ff - koniec patternu.¢¢¢Format moduu MPT v2.4¢---------------------------------------¢Plik binarny.¢¢Adres wzgl❎dem pocz⇧tku w pami❎ci¢ ¢>$000 - adresy instrumentw (sowa)¢ (puste ma adres $0000);¢>$040 - adresy patternw (sowa)¢ (pusty ma adres $0000);¢>$0C0 - tablica cz❎stotliwo③ci #1;¢>$100 - tablica cz❎stotliwo③ci #2;¢>$140 - tablica cz❎stotliwo③ci #3;¢>$180 - tablica cz❎stotliwo③ci #4;¢>$1C0 - modsze bajty adresw trackw;¢>$1C4 - starsze bajty adresw trackw;¢>$1C8 - dugo③⇨ patternw (S=1-4/M=0);¢>$1C9 - tempo utworu ($01-$1f);¢>$1CA - dane tracku #1;¢ dane tracku #2;¢ dane tracku #3;¢ dane tracku #4;¢ dane instrumentw;¢ dane patternw;¢¢¢✓áגβ∈σá⌠≥βπδÅ≈áꢢ numer patternu,transpozycja¢ numer patternu,transpozycja¢ ...¢¢¢✓áגβ∈σáΘ∈≤⌠≥⌡ϕσ∈⌠Å≈áꢢ aa,bb,aa,bb,aa,bb,... (16 par aa,bb)¢¢ aa - go③no③c i barwa dzwi❎ku¢ bb - numery akcentw (M)¢ numery parametrw akcentw * 2 (S)¢¢ nast❎pne bajty danych instrumentu:¢¢ 8 bajtw - parametry steruj⇧ce ins.¢ 8 bajtw - parametry akcentw¢¢¢✓áגβ∈σá≡β⌠⌠σ≥∈Å≈áꢢ $01-$3E - zagraj nut❎ o numerze¢ $40-$5F - zmie brzmienie (-$40)¢ $80-$B5 - ustaw ilo③⇨ pustych pozycji¢ pomi❎dzy nutami (-$80)¢ $C0-$CF - ustaw go③no③⇨ (-$C0)¢ $Ex - koniec patternu¢ $FE - wstaw puste pozycje¢ (na pocz⇧tku lub kocu patternu¢ ($80 = jedna pusta pozycja)¢¢ x - dowolna cyfra $0-$F¢¢¢Format moduu sampli MPT¢---------------------------------------¢Plik nie jest binarny!¢¢Adres od pocz⇧tku pliku¢ ¢>$00 - starsze bajty adresw pocz⇧tku¢ sampli¢>$10 - starsze bajty adresw koca¢ sampli¢¢ Adresy s⇧ zwi❎kszone o $9000.¢¢ Dalej dane sampli (S/M).¢¢¢Format moduu TMC v. 1.00¢---------------------------------------¢Plik binarny¢¢>$000 - bajty informacyjne;¢>$01d - zawsze spacja ($20);¢>$01e - tempo, jest to warto③⇨ o jeden¢ mniejsza niə w CMC lub MPT;¢>$01f - cz❎stotliwo③⇨ odtwarzenia na¢ ramk❎;¢>$020 - modsze bajty adresw instr.¢>$060 - starsze bajty adresw instr.¢ (pusty ma adres $0000);¢>$0a0 - modsze bajty adresw patternw¢>$120 - starsze bajty adresw patternw¢>$1a0 - dane songu;¢ dane instrumentw;¢ dane patternw;¢¢¢✓áגβ∈σá≤∩∈τ⌡áꢢKaəda pozycja w songu zajmuje 16b.:¢¢ t8,p8,t7,p7...t2,p2,t1,p1¢gdzie:¢ tx - transpozycja tracku x,¢ px - nr. patternu do odegrania¢ na tracku x;¢¢¢✓áגβ∈σáΘ∈≤⌠≥⌡ϕσ∈⌠Å≈áꢢ- 21 razy trjka bajtw:¢¢ 1) S - znieksztacenie d♪wi❎ku,¢ M - go③no③⇨ obwiedni podstawowej;¢ 2) S - typ akcentu,¢ M - go③no③⇨ obwiedni dodatkowej;¢ 3) parametr akcentu;¢¢- 8 bajtw transpozycji,¢- 9 bajtw parametrw d♪wi❎ku.¢¢ W sumie 80 bajtw.¢¢¢✓áגβ∈σá≡β⌠⌠σ≥∈Å≈áꢢPoszczeglne bajty oznaczaj⇧:¢¢0 - zmiana go③no③ci d♪wi❎ku, nast❎-¢ puj⇧ca za nim warto③⇨ jest negacj⇧¢ (EOR #$FF) go③no③ci uəywanej w TMC¢¢1-$3f - graj nut❎ o tym numerze i¢ ustalonym wcze③niej instrumencie.¢ Nast❎puje po tym bajt go③no③ci.¢¢$40 - nowy parametr, jeəeli ten bajt¢ ma ustawiony najwyəszy bit, to nas-¢ t❎puje jeszcze za nim bajt zmiany¢ go③no③ci.¢¢$41-$7f - graj nut❎ o numerze zANDo-¢ wanym liczb⇧ $3f i ustalonym instru-¢ mencie. Nast❎puje za tym bajt para-¢ metru z ustawionym najwyəszym bitem¢ oraz bajt go③no③ci.¢¢$80-$bf - zmiana aktualnego instrume-¢ ntu. Uəywana przed rozkazem grania¢ nuty tylko przy faktycznej zmianie¢ instrumentu w patternie.¢¢$c0-$ff - linie puste w patternie.¢ $c0 to 1 linia pusta, $ff to puste¢ 64 linie, czyli innymi sowy koniec¢ danych patternu, gdyə dowolnie na¢ ktrej pozycji dotychczas si❎ znaj-¢ dowali③my dodanie do niej 64 powodu-¢ je wyj③cie poza dugo③⇨ patternu.¢ Kaədy pattern koczy si❎ tym bajtem,¢ nawet jeəeli na ostatniej pozycji¢ co③ si❎ znajduje.¢ Pattern pusty skada si❎ tylko z¢ tego bajtu. Pattern najduəszy acz-¢ nie z tym bajtem ma 257 bajtw du-¢ go③ci.¢¢