TM2

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 20:08, 15 wrz 2006
Epi (Dyskusja | wkład)

← Previous diff
Wersja z dnia 21:13, 15 wrz 2006
Epi (Dyskusja | wkład)

Next diff →
Linia 1: Linia 1:
-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).+Format modułu muzycznego używany przez program [[Theta Music Composer]] 2.0.
Plik w tym formacie posiada normalny [[COM#Nag.C5.82.C3.B3wek|nagłówek binarny]], składa się z jednego bloku. Plik w tym formacie posiada normalny [[COM#Nag.C5.82.C3.B3wek|nagłówek binarny]], składa się z jednego bloku.
Wewnątrz znajdują się następujące dane: Wewnątrz znajdują się następujące dane:
 +
 +<table>
 +<tr><td>offset</td><td>długość</td><td>zawartość</td></tr>
 +<tr><td>$0000</td><td>$0017</td><td>identyfikator pliku w formacie TMC 2.0: 14,21,13+128,c'TMC SONG FILE 2.0'*,13+128,21,14</td></tr>
 +<tr><td>$0017</td><td>$0002</td><td>długość danych w pamięci</td></tr>
 +<tr><td>$0019</td><td>$0005</td><td>konfiguracja POKEYa i sposób odtwarzania</td></tr>
 +<tr><td>$001e</td><td>$0001</td><td>początkowa szybkość odtwarzania utworu</td></tr>
 +<tr><td>$001f</td><td>$0001</td><td>ilość wywołań playera na ramkę</td></tr>
 +<tr><td>$0020</td><td>$0060</td><td>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</td></tr>
 +<tr><td>$0080</td><td>$0080</td><td>młodsze bajty adresów instrumentów</td></tr>
 +<tr><td>$0100</td><td>$0100</td><td>młodsze bajty adresów patternów</td></tr>
 +<tr><td>$0200</td><td>$0100</td><td>starsze bajty adresów patternów</td></tr>
 +<tr><td>$0300</td><td>$0080</td><td>starsze bajty adresów instrumentów</td></tr>
 +<tr><td>$0380</td><td>...</td><td>dane songu</td></tr>
 +<tr><td>...</td><td>...</td><td>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</td></tr>
 +</table>
 +
 +=== Dane songu ===
 +
 +* numer patternu na ostatnim kanale, wartość transpozycji
 +* numer patternu na przedostatnim kanale, wartość transpozycji
 +...
 +* numer patternu na pierwszym kanale, wartość transpozycji
 +* 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 (transpozycja pierwszego kanału)
 +
 +=== 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 8-)
 +* $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

Wersja z dnia 21:13, 15 wrz 2006

Format modułu muzycznego używany przez program Theta Music Composer 2.0.

Plik w tym formacie posiada normalny nagłówek binarny, składa się z jednego bloku. Wewnątrz znajdują się następujące dane:

offsetdługośćzawartość
$0000$0017identyfikator pliku w formacie TMC 2.0: 14,21,13+128,c'TMC SONG FILE 2.0'*,13+128,21,14
$0017$0002długość danych w pamięci
$0019$0005konfiguracja POKEYa i sposób odtwarzania
$001e$0001początkowa szybkość odtwarzania utworu
$001f$0001ilość wywołań playera na ramkę
$0020$0060dane 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$0080młodsze bajty adresów instrumentów
$0100$0100młodsze bajty adresów patternów
$0200$0100starsze bajty adresów patternów
$0300$0080starsze 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

Dane songu

  • numer patternu na ostatnim kanale, wartość transpozycji
  • numer patternu na przedostatnim kanale, wartość transpozycji

...

  • numer patternu na pierwszym kanale, wartość transpozycji
  • 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 (transpozycja pierwszego kanału)

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 8-)
  • $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
Personal tools