TM2
From Atariki
Format modułu muzycznego używany przez program Theta Music Composer 2.0.
Plik w tym formacie zawiera normalny nagłówek binarny, składa się z jednego bloku. Wewnątrz znajdują się następujące dane:
| offset | długość | zawartość | 
| $0000 | $0017 | identyfikator pliku w formacie TMC 2.0: 14,21,13+128,c'TMC SONG FILE 2.0'*,13+128,21,14 | 
| $0017 | $0002 | długość danych w pamięci | 
| $0019 | $0005 | konfiguracja POKEYa i sposób odtwarzania | 
| $001e | $0001 | początkowa szybkość odtwarzania utworu | 
| $001f | $0001 | ilość wywołań playera na ramkę | 
| $0020 | $0060 | dane informacyjne o utworze wpisane przez autora; z racji istnienia ramek bocznych w programie, bajty $20,$3f,$40,$5f,$60,$7f są obecnie nieużywane | 
| $0080 | $0080 | młodsze bajty adresów instrumentów | 
| $0100 | $0100 | młodsze bajty adresów patternów | 
| $0200 | $0100 | starsze bajty adresów patternów | 
| $0300 | $0080 | starsze bajty adresów instrumentów | 
| $0380 | ... | dane songu | 
| ... | ... | dane instrumentów i paternów (zgodnie z adresami w tablicy); uwaga, nie są one ustawione kolejno, ale zgodnie z zasadą: ostatnio używany na koniec | 
Spis treści | 
Konfiguracja
- quadro - $00: mono, $01-$3f: stereo, $40-$7f: RMT stereo, $80-$ff: quadro
 -  pokeys - 4 bajty przyporządkowujące kanały TMC do układów POKEY, kolejno: 
- bajt 0: 1-4 kanał obwiedni podstawowej,
 - bajt 1: 5-8 kanał obwiedni podstawowej,
 - bajt 2: 1-4 kanał obwiedni dodatkowej,
 - bajt 3: 5-8 kanał obwiedni dodatkowej
 
 
W trybie mono, stereo i RMT wartość 16 oznacza pierwszego POKEY-a, a 20 drugiego. W trybie quadro wartości 0, 4, 8, 12 odpowiadają kolejnym układom.
Dane songu
- wartość transpozycji, numer patternu na ostatnim kanale
 - wartość transpozycji, numer patternu na przedostatnim kanale
 
...
- wartość transpozycji, numer patternu na pierwszym kanale
 - bajt długość patternów($01-$40), lub koniec odgrywania ($00) lub skok do pozycji w songu ($80-$ff), numer linii do skoku znajduje się w poprzednim bajcie (nr patternu na pierwszym kanale)
 
Dane instrumentów
-  19 bajtów konfiguracyjnych dźwięku:
- 8 bajtów transpozycji
 - długość danych obwiedni i punkt pętlowania (Uwaga, ta wartość jest 3 razy większa od tej używanej w TMC.)
 - pozostałe 9 bajtów definiujących typ dźwięku
 
 -  do 255 bajtów obwiedni dźwięku (tyle ile ustalono w jej długości), ustawione w trójki $AB,$CD,$EF, gdzie:
- A: zniekształcenie
 - B: głośność podstawowej obwiedni
 - C: rodzaj akcentu
 - D: głośność dodatkowej obwiedni
 - EF: parametr do akcentu
 
 
Dane paternów
Szereg poleceń, typ polecenia i jego długość jest rozpoznawana po pierwszym bajcie:
- $00: + nowa głośność
 - $01-$3f: nowa nuta + instrument (jeśli instument>=128, to instrument jest brany bez ostatniego bitu i dochodzi dodatkowy bajt: nowa głośność)
 - $40: nieużywane
 - $41-$7f: nowa nuta + nowa głośność
 - $80: + ilośc pustych linii w patternie (używane tylko wtedy gdy ich ilość wynosi przynajmniej 15)
 - $81-$bc: nowa nuta
 - $c0-$cf: nowe tempo (ten kod poprzedza kod dotyczący pozostałych informacji w tej linii)
 - $d0-$df: specjalny kod
 - $e0-$ef: specjalny kod + nowa głośność
 - $f0-$fe: puste linie (od 0 do 14, kod 0 jest używany, gdy w danej linii jest tylko zmiana tempa)
 - $ff: puste linie aż do końca paternu
 
