TMC (format pliku)
From Atariki
(Różnice między wersjami)
												
			
			| Wersja z dnia 11:24, 25 wrz 2006 KMK (Dyskusja | wkład) ← Previous diff  | 
				Wersja z dnia 10:29, 10 mar 2007 Epi (Dyskusja | wkład) Next diff →  | 
			||
| Linia 6: | Linia 6: | ||
| <tr><td>offset</td><td>długość</td><td>opis</td></tr> | <tr><td>offset</td><td>długość</td><td>opis</td></tr> | ||
| <tr><td>$0000</td><td>$001e</td><td>tytuł utworu (ostatni bajt musi być spacją)</td></tr> | <tr><td>$0000</td><td>$001e</td><td>tytuł utworu (ostatni bajt musi być spacją)</td></tr> | ||
| - | <tr><td>$001e</td><td>$0001</td><td>szybkość odtwarzania (ilość ramek na linię)</td></tr> | + | <tr><td>$001e</td><td>$0001</td><td>szybkość odtwarzania (ilość [[ramka|ramek]] na linię paternu)</td></tr> | 
| <tr><td>$001f</td><td>$0001</td><td>ilość wywołań playera na ramkę</td></tr> | <tr><td>$001f</td><td>$0001</td><td>ilość wywołań playera na ramkę</td></tr> | ||
| <tr><td>$0020</td><td>$0040</td><td>młodsze bajty adresów instrumentów</td></tr> | <tr><td>$0020</td><td>$0040</td><td>młodsze bajty adresów instrumentów</td></tr> | ||
Wersja z dnia 10:29, 10 mar 2007
Format modułu muzycznego używany przez program Theta Music Composer 1.x. Występuje w postaci plików z rozszerzeniami TMC i TM8 (ośmiokanałowe) lub TM4 (czterokanałowe).
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ść | opis | 
| $0000 | $001e | tytuł utworu (ostatni bajt musi być spacją) | 
| $001e | $0001 | szybkość odtwarzania (ilość ramek na linię paternu) | 
| $001f | $0001 | ilość wywołań playera na ramkę | 
| $0020 | $0040 | młodsze bajty adresów instrumentów | 
| $0060 | $0040 | starsze bajty adresów instrumentów (adres równy 0 oznacza instrument pusty) | 
| $00a0 | $0080 | młodsze bajty adresów paternów | 
| $0120 | $0080 | starsze bajty adresów paternów | 
| $01a0 | ... | dane songu | 
| ... | ... | dane instrumentów | 
| ... | ... | dane paternów | 
Dane songu
Każda pozycja zajmuje 16 bajtów. Są to kolejno: transpozycja ścieżki 8, nr paternu na ścieżce 8, transpozycja ścieżki 7, itd. Koniec danych songu wyznacza pozycja pusta (16 wartości $ff).
Dane instrumentów
Każdy instrument to 80 bajtów. Kolejno:
-  21 razy trójka bajtów $ab, $cd, $ef, gdzie:
- a - zniekształcenie dźwięku,
 - b - głośność obwiedni podstawowej,
 - c - typ akcentu,
 - d - głośność obwiedni dodatkowej,
 - ef - parametr akcentu,
 
 - 8 bajtów transpozycji,
 - 9 bajtów parametrów dźwięku.
 
Dane paternów
Znaczenie poszczególnych wartości:
- $00 - zmiana głośności dźwięku, kolejny bajt jest bitową negacją wartości głośności używanej w programie;
 - $01-$3f - graj nutę o danym numerze za pomocą ustalonego wcześniej instrumentu, następuje po tym bajt głośności;
 - $40 - nowy parametr, jeżeli ten bajt ma ustawiony najwyższy bit, to następuje za nim bajt zmiany głośności;
 - $41-$7f - graj nutę o numerze określonym na sześciu młodszych bitach i ustalonym instrumencie, następuje po tym bajt parametru z ustawionym najstarszym bitem oraz bajt głośności;
 - $80-$bf - zmiana bieżącego instrumentu na inny o numerze określonym w sześciu młodszych bitach, używane przed rozkazem grania nuty tylko przy faktycznej zmianie instrumentu w paternie;
 - $c0-$ff - linie puste w paternie, ich ilość określa sześć młodszych bitów; każdy patern kończy się bajtem $ff oznaczającym 64 puste linie;
 
