<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=TMC_%28format_pliku%29</id>
	<title>TMC (format pliku) - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=TMC_%28format_pliku%29"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=TMC_(format_pliku)&amp;action=history"/>
	<updated>2026-10-02T16:21:40Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=TMC_(format_pliku)&amp;diff=3858&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=TMC_(format_pliku)&amp;diff=3858&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;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).&lt;br /&gt;
&lt;br /&gt;
Plik w tym formacie zawiera normalny [[Binarny plik DOSu|nagłówek binarny]], składa się z jednego bloku.&lt;br /&gt;
Wewnątrz znajdują się następujące dane:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| offset&lt;br /&gt;
| długość&lt;br /&gt;
| opis&lt;br /&gt;
|-&lt;br /&gt;
| $0000&lt;br /&gt;
| $001e&lt;br /&gt;
| tytuł utworu (ostatni bajt musi być spacją)&lt;br /&gt;
|-&lt;br /&gt;
| $001e&lt;br /&gt;
| $0001&lt;br /&gt;
| szybkość odtwarzania (ilość [[Ramka|ramek]] na linię paternu)&lt;br /&gt;
|-&lt;br /&gt;
| $001f&lt;br /&gt;
| $0001&lt;br /&gt;
| ilość wywołań playera na ramkę&lt;br /&gt;
|-&lt;br /&gt;
| $0020&lt;br /&gt;
| $0040&lt;br /&gt;
| młodsze bajty adresów instrumentów&lt;br /&gt;
|-&lt;br /&gt;
| $0060&lt;br /&gt;
| $0040&lt;br /&gt;
| starsze bajty adresów instrumentów (adres równy 0 oznacza instrument pusty)&lt;br /&gt;
|-&lt;br /&gt;
| $00a0&lt;br /&gt;
| $0080&lt;br /&gt;
| młodsze bajty adresów paternów&lt;br /&gt;
|-&lt;br /&gt;
| $0120&lt;br /&gt;
| $0080&lt;br /&gt;
| starsze bajty adresów paternów&lt;br /&gt;
|-&lt;br /&gt;
| $01a0&lt;br /&gt;
| ...&lt;br /&gt;
| dane songu&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
| dane instrumentów&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
| ...&lt;br /&gt;
| dane paternów&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dane songu ===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
=== Dane instrumentów ===&lt;br /&gt;
&lt;br /&gt;
Każdy instrument to 80 bajtów. Kolejno:&lt;br /&gt;
&lt;br /&gt;
* 21 razy trójka bajtów $ab, $cd, $ef, gdzie:&lt;br /&gt;
** a - zniekształcenie dźwięku,&lt;br /&gt;
** b - głośność obwiedni podstawowej,&lt;br /&gt;
** c - typ akcentu,&lt;br /&gt;
** d - głośność obwiedni dodatkowej,&lt;br /&gt;
** ef - parametr akcentu,&lt;br /&gt;
* 8 bajtów transpozycji,&lt;br /&gt;
* 9 bajtów parametrów dźwięku.&lt;br /&gt;
&lt;br /&gt;
Typ akcentu:&lt;br /&gt;
&lt;br /&gt;
* 0 -brak akcentu. Częstotliwość zależy tylko od typu dźwięku i nuty.&lt;br /&gt;
* 1 -parametr jest bezpośrednio wpisywany do komórki częstotliwości POKEY-a.&lt;br /&gt;
* 2 -poprzednia wartość wpisana do POKEY-a, plus parametr, do POKEY-a.&lt;br /&gt;
* 3 -oryginalna wartość częstotliwości przed wpisaniem do POKEY-a jest powiększana o parametr.&lt;br /&gt;
* 4 -parametr AND $D20A (RANDOM) jest wpisywany do POKEY-a.&lt;br /&gt;
* 5 -parametr oznacza numer nuty, której częstotliwość pobierana jest z tablicy częstotliwości i wpisywana do POKEY-a.&lt;br /&gt;
* 6 -podobnie jak poprzednio, ale przed wpisaniem do POKEY-a wartość jest powiększona o dotychczasową wartość wpisaną do POKEY-a.&lt;br /&gt;
* 7 -parametr jest transpozycją nuty.&lt;br /&gt;
* 8-F -akcenty te są identyczne z akcentami 0-7, z tym, że do komórki AUDCTL jest wpisywana zapasowa wartość AUDCTL dźwięku. Normalnie przy akcencie 0 wpisywana jest tam wartość standardowa, a przy pozostałych wartość 0.&lt;br /&gt;
&lt;br /&gt;
Parametry dźwięku:&lt;br /&gt;
&lt;br /&gt;
* barwa filtru -jak łatwo się domyślić używana przy dźwiękach filtrowanych. Częstotliwość transponowana przez tą wartość wpisywana jest do generatora filtrującego (o numerze o 2 większym).&lt;br /&gt;
* standardowa wartość AUDCTL dźwięku.&lt;br /&gt;
* zapasowa wartość AUDCTL (używana przy akcentach od 8 do F).&lt;br /&gt;
* szybkość opadania obwiedni podstawowej. Kiedy player zagra już wszystkie 21 kolumn obwiedni dźwięku, o głośności decyduje już tylko głośność na ostatniej kolumnie i szybkość opadania. Liczona jest ona w ilości wywołań playera. Wartość 10 oznacza zmniejszanie głośności o jeden co $10 wywołań playera. 0 to obwiednia stała.&lt;br /&gt;
* szybkość opadania obwiedni dodatkowej.&lt;br /&gt;
* starsze 4 bity oznaczają typ dźwięku. Młodsze 4 to parametr. Poszczególne typy dźwięku to:&lt;br /&gt;
** 0 -dźwięk normalny.&lt;br /&gt;
** 1 -wibrato.&lt;br /&gt;
** 2 -płynne wibrato.&lt;br /&gt;
** 3 -wibrato liczone w nutach.&lt;br /&gt;
** 4 -opadanie dźwięku.&lt;br /&gt;
** 5 -opadanie dźwięku liczone w nutach.&lt;br /&gt;
** 6 -stałe podwyższenie wysokości.&lt;br /&gt;
** 7 -dopóki głośność dźwięku na obwiedni podstawowej jest niezerowa, głośność obwiedni dodatkowej jest zwiększana o 1. Jest to inaczej przechodzenie dźwięku do drugiego kanału.&lt;br /&gt;
&lt;br /&gt;
Typy dźwięku od 8 do F różnią się tym, że parametr jest brany z minusem, to znaczy, że zamiast opadania będzie wznoszenie, wibrato będzie przesunięte w fazie, a przechodzenie dźwięku będzie realizowane w odwrotną stronę.&lt;br /&gt;
&lt;br /&gt;
* oczekiwanie na rozpoczęcie danego typu dźwięku. Do tej pory dźwięk brzmi jakby był typu 0.&lt;br /&gt;
* najstarsze 2 bity oznaczają tablicę częstotliwości, z której pobierana będzie częstotliwość. W rzeczywistości wartość ta jest dodawana do numeru nuty tak, że dla drugiej tablicy nuta C-1 ma numer $41. Pozostałe 6 bitów podaje zmniejszoną o 1 ilość wywołań playera po której następuje kolejne wywołanie procedury typu dźwięku, zmieniające odpowiednio dźwięk.&lt;br /&gt;
* młodsze 4 bity to zmniejszona o jeden ilość wywołań playera, po której odtwarzana jest następna transpozycja. Starsze 3 bity, to zmniejszona o jeden ilość używanych transpozycji. Transpozycje są odtwarzane od tej o numerze 1 aż do tej której numer wybraliśmy, a następnie znowu od tej o numerze 1. Jednakże jeżeli ilość transpozycji zwiększymy o 8, to będą one odtwarzane w kolejności od tej o numerze 1 w dół aż do tej której numer wybraliśmy, a następnie z powrotem w górę do pierwszej i tak w kółko.&lt;br /&gt;
&lt;br /&gt;
=== Dane paternów ===&lt;br /&gt;
&lt;br /&gt;
Znaczenie poszczególnych wartości:&lt;br /&gt;
&lt;br /&gt;
* $00 - zmiana głośności dźwięku, kolejny bajt jest bitową negacją wartości głośności używanej w programie;&lt;br /&gt;
* $01-$3f - graj nutę o danym numerze za pomocą ustalonego wcześniej instrumentu, następuje po tym bajt głośności;&lt;br /&gt;
* $40 - nowy parametr, jeżeli ten bajt ma ustawiony najwyższy bit, to następuje za nim bajt zmiany głośności;&lt;br /&gt;
* $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;&lt;br /&gt;
* $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;&lt;br /&gt;
* $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;&lt;br /&gt;
&lt;br /&gt;
== Linki ==&lt;br /&gt;
&lt;br /&gt;
* [[INS (Theta Music Composer)|INS]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Formaty plików]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>