TMC (format pliku)
From Atariki
(Różnice między wersjami)
| Wersja z dnia 18:45, 15 wrz 2006 Epi (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 19:07, 15 wrz 2006 Epi (Dyskusja | wkład) Next diff → |
||
| Linia 12: | Linia 12: | ||
| <tr><td>$00a0</td><td>$0080</td><td>młodsze bajty adresów paternów</td></tr> | <tr><td>$00a0</td><td>$0080</td><td>młodsze bajty adresów paternów</td></tr> | ||
| <tr><td>$0120</td><td>$0080</td><td>starsze bajty adresów paternów</td></tr> | <tr><td>$0120</td><td>$0080</td><td>starsze bajty adresów paternów</td></tr> | ||
| - | <tr><td>$01a0</td><td>...</td><td>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.</td></tr> | + | <tr><td>$01a0</td><td>...</td><td>dane songu</td></tr> |
| <tr><td>...</td><td>...</td><td>dane instrumentów</td></tr> | <tr><td>...</td><td>...</td><td>dane instrumentów</td></tr> | ||
| <tr><td>...</td><td>...</td><td>dane paternów</td></tr> | <tr><td>...</td><td>...</td><td>dane paternów</td></tr> | ||
| + | </table> | ||
| - | -- 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. | ||
| - | </table> | + | === 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; | ||
Wersja z dnia 19:07, 15 wrz 2006
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 posiada 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ę) |
| $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.
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;
