MPT (format pliku)
From Atariki
Wersja z dnia 22:13, 15 lut 2012 Mono (Dyskusja | wkład) (sample przesuniete do osobnego artykulu) ← Previous diff |
Wersja z dnia 22:32, 23 sty 2013 Mono (Dyskusja | wkład) (dane trackow) Next diff → |
||
Linia 1: | Linia 1: | ||
{{SDP}} | {{SDP}} | ||
- | ==Struktura pliku, nagłówek== | + | Plik MPT jest [[Binarny plik DOSu|plikiem binarnym DOS]]. |
+ | |||
+ | ==Struktura pliku== | ||
Offset: | Offset: | ||
Linia 19: | Linia 21: | ||
$01C9-$01C9 - tempo utworu | $01C9-$01C9 - tempo utworu | ||
- | $01CA-$xxxx - dane tracku #1, dane tracku #2, dane tracku #3, dane tracku #4 | + | $01CA-$???? - dane tracku #1, dane tracku #2, dane tracku #3, dane tracku #4 |
- | Ilość danych dla jednego tracku zależy od różnicy pomiędzy adresami sąsiednich tracków | + | $????-$???? - dane brzmień |
- | ?-? - dane brzmień | + | $????-$???? - dane patternów |
- | ?-? - dane patternów | + | |
==Dane brzmień== | ==Dane brzmień== | ||
Linia 92: | Linia 93: | ||
MPT v2.4 zapisuje w pliku patterny w ten sposób, że zawsze mają stałą długość, równą ustawionej w nagłówku. Następuje to poprzez dodanie na końcu patternu rozkazu tworzącego puste pozycje, tak aby każdy pattern miał identyczną liczbę pozycji. | MPT v2.4 zapisuje w pliku patterny w ten sposób, że zawsze mają stałą długość, równą ustawionej w nagłówku. Następuje to poprzez dodanie na końcu patternu rozkazu tworzącego puste pozycje, tak aby każdy pattern miał identyczną liczbę pozycji. | ||
- | Wpisując dane w trackach w MPT należy zwrócić uwagę na to, aby rozkaz skoku lub rozkaz zatrzymania utworu (odpowiednio $FF i $FE) znajdowały się na ścieżce numer 0, a wartości na pozostałych ścieżkach były równe 0. W przeciwnym wypadku MPT błędnie obliczy adresy brzmień i patternów podczas zapisywana pliku. Muzyczka zapisana w ten sposób będzie się poprawnie wczytywała do MPT, natomiast podczas odgrywania tejże muzyczki za pomocą jakiegoś playera usłyszymy tylko bulgoty albo ciszę. | + | ==Dane tracku== |
+ | |||
+ | Każdy track składa się z pary bajtów: | ||
+ | |||
+ | * pattern ($00..$3f) | ||
+ | * transpozycja | ||
+ | |||
+ | Na pozycji patternu w tracku #1 można zapisać rozkazy: | ||
+ | |||
+ | * $FE - zatrzymanie utworu | ||
+ | * $FF pozycja - skok do pozycji w tracku | ||
+ | |||
+ | ==Uwagi== | ||
+ | Wpisując dane w trackach w MPT należy zwrócić uwagę na to, aby rozkazy znajdowały się w tracku #1, a wartości w pozostałych trackach były równe 0. W przeciwnym wypadku MPT błędnie obliczy adresy brzmień i patternów podczas zapisywana pliku. Muzyczka zapisana w ten sposób będzie się poprawnie wczytywała do MPT, natomiast podczas odgrywania tejże muzyczki za pomocą jakiegoś playera usłyszymy tylko bulgoty albo ciszę. | ||
==Linki== | ==Linki== |
Wersja z dnia 22:32, 23 sty 2013
Plik MPT jest plikiem binarnym DOS.
Spis treści |
Struktura pliku
Offset:
$0000-$003F - adresy brzmień (LSB/MSB) (32 słowa). Bajty $00, $00 w tej tablicy oznaczają, że dane brzmienie jest puste
$0040-$00BF - adresy patternów (LSB/MSB) (64 słowa). Bajty $00, $00 w tej tablicy oznaczają, że dany pattern jest pusty
$00C0-$01BF - cztery tablice częstotliwości (64 bajty każda)
$01C0-$01C3 - młodsze bajty adresów tracków
$01C4-$01C7 - starsze bajty adresów tracków
$01C8-$01C8 - długość patternów (wartości $10, $20, $30 lub $40)
$01C9-$01C9 - tempo utworu
$01CA-$???? - dane tracku #1, dane tracku #2, dane tracku #3, dane tracku #4
$????-$???? - dane brzmień
$????-$???? - dane patternów
Dane brzmień
Brzmienie ma długość 48 bajtów, jeśli nie jest puste. Pierwsze 32 bajty układają się w pary:
BG PN.. (x16)
gdzie:
B - barwa dzwięku - 4 bity (starsze)
G - głośność dźwięku - 4 bity (młodsze)
P - numery parametrów akcentów pomnożone przez 2 (drugi rząd) - 4 bity (starsze)
N - numery akcentów (pierwszy rząd) - 4 bity (młodsze)
Następne 8 bajtów to parametry sterujące instrumentem (pierwszy rząd z lewej), kolejne 8 bajtów to parametry akcentów (drugi rząd z lewej).
Dane patternów
$01-$3E - granie nuty (a raczej półtonu) o numerze N (np. 1=C-1, 2=C#1, 3=D-1)
$40-$5F - zmień brzmienie na numer równy N-$40
$80-$BE - ustaw ilość odstępów pomiędzy nutami na N-$80
działa dopiero po odegraniu nuty (od momentu wystąpienia rozkazu pierwszy odstęp pojawia się za nutą)
Jeśli zaraz za tym bajtem (kodem) występuje bajt równy $FE następuje ustawienie pustych pozycji w patternie. Ilość tych pozycji wynosi N-$7F. W tym przypadku puste pozycje pojawią się od razu, w momencie wystąpienia bajtu $FE, np. ciąg bajtów:
$83 $FE $41 $81 $01 $03 $01 $05 | | | | | | | | | | | | --numery półtonów | | | | | | | 1 odstęp pomiędzy nutami | | | | | ustaw brzmienie #1 ---- | 4 puste pozycje na początku patternu
reprezentuje pattern:
--- -- --- -- --- -- --- -- C-1 01 --- -- D-1 01 --- -- C-1 01 --- -- E-1 01 --- --
Pominięto głośność brzmień.
$C0-$CF - ustaw głośność nut na równą N-$C0
$D0-$DF - ustaw tempo grania na równe N-$D0
$Ex - koniec patternu (x - dowolne 4 bity)
MPT v2.4 zapisuje w pliku patterny w ten sposób, że zawsze mają stałą długość, równą ustawionej w nagłówku. Następuje to poprzez dodanie na końcu patternu rozkazu tworzącego puste pozycje, tak aby każdy pattern miał identyczną liczbę pozycji.
Dane tracku
Każdy track składa się z pary bajtów:
- pattern ($00..$3f)
- transpozycja
Na pozycji patternu w tracku #1 można zapisać rozkazy:
- $FE - zatrzymanie utworu
- $FF pozycja - skok do pozycji w tracku
Uwagi
Wpisując dane w trackach w MPT należy zwrócić uwagę na to, aby rozkazy znajdowały się w tracku #1, a wartości w pozostałych trackach były równe 0. W przeciwnym wypadku MPT błędnie obliczy adresy brzmień i patternów podczas zapisywana pliku. Muzyczka zapisana w ten sposób będzie się poprawnie wczytywała do MPT, natomiast podczas odgrywania tejże muzyczki za pomocą jakiegoś playera usłyszymy tylko bulgoty albo ciszę.
Linki
- Opis formatu sampli SND z MPT 2.4
- Opis formatu plików MPT