TM2

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 20:47, 14 mar 2017
Mono (Dyskusja | wkład)
(Linki - ptr)
← Previous diff
Wersja z dnia 13:54, 15 mar 2017
Mono (Dyskusja | wkład)
(konfiguracja pokeyów)
Next diff →
Linia 20: Linia 20:
</table> </table>
 +=== Konfiguracja ===
 +
 +* quadro - $00: mono, $01-$3f: stereo, $40-$7f: RMT stereo, $80-$ff: quadro
 +* pokeys - 4 bajty przyporządkowujące kanały TMC do układów POKEY, kolejno:
 + * bajt 0: 1-4 kanał obwiedni podstawowej,
 + * bajt 1: 5-8 kanał obwiedni podstawowej,
 + * bajt 2: 1-4 kanał obwiedni dodatkowej,
 + * bajt 3: 5-8 kanał obwiedni dodatkowej
 +W trybie mono, stereo i RMT wartość 16 oznacza pierwszego POKEY-a, a 20 drugiego.
 +W trybie quadro wartości 0, 4, 8, 12 odpowiadają kolejnym układom.
=== Dane songu === === Dane songu ===

Wersja z dnia 13:54, 15 mar 2017

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

Plik w tym formacie zawiera 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

Spis treści

Konfiguracja

  • quadro - $00: mono, $01-$3f: stereo, $40-$7f: RMT stereo, $80-$ff: quadro
  • pokeys - 4 bajty przyporządkowujące kanały TMC do układów POKEY, kolejno:
* bajt 0: 1-4 kanał obwiedni podstawowej, 
* bajt 1: 5-8 kanał obwiedni podstawowej, 
* bajt 2: 1-4 kanał obwiedni dodatkowej, 
* bajt 3: 5-8 kanał obwiedni dodatkowej

W trybie mono, stereo i RMT wartość 16 oznacza pierwszego POKEY-a, a 20 drugiego. W trybie quadro wartości 0, 4, 8, 12 odpowiadają kolejnym układom.

Dane songu

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

...

  • wartość transpozycji, numer patternu na pierwszym kanale
  • 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 (nr patternu na pierwszym kanale)

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
  • $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

Linki

Personal tools