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;