MPT (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 13:45, 14 lut 2012
Daniel Koźmiński (Dyskusja | wkład)

← Previous diff
Wersja z dnia 13:49, 14 lut 2012
Daniel Koźmiński (Dyskusja | wkład)
(Zwikizowanie.)
Next diff →
Linia 4: Linia 4:
$0000-$003F - adresy brzmień (LSB/MSB) (32 słowa). Bajty $00, $00 w tej tablicy oznaczają, że dane brzmienie jest puste $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 $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) $00C0-$01BF - cztery tablice częstotliwości (64 bajty każda)
 +
$01C0-$01C3 - młodsze bajty adresów tracków $01C0-$01C3 - młodsze bajty adresów tracków
 +
$01C4-$01C7 - starsze 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) $01C8-$01C8 - długość patternów (wartości $10, $20, $30 lub $40)
 +
$01C9-$01C9 - tempo utworu $01C9-$01C9 - tempo utworu
-$01CA-? - dane tracku #1, dane tracku #2, dane tracku #3, dane tracku #4+ 
 +$01CA-$xxxx - 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 Ilość danych dla jednego tracku zależy od różnicy pomiędzy adresami sąsiednich tracków
Linia 26: Linia 33:
B - barwa dzwięku - 4 bity (starsze) B - barwa dzwięku - 4 bity (starsze)
 +
G - głośność dźwięku - 4 bity (młodsze) 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) 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) N - numery akcentów (pierwszy rząd) - 4 bity (młodsze)
Linia 35: Linia 45:
$01-$3E - granie nuty (a raczej półtonu) o numerze N (np. 1=C-1, 2=C#1, 3=D-1) $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 $40-$5F - zmień brzmienie na numer równy N-$40
 +
$80-$BE - ustaw ilość odstępów pomiędzy nutami na N-$80 $80-$BE - ustaw ilość odstępów pomiędzy nutami na N-$80
Linia 41: Linia 53:
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: 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:
- 
<pre>$83 $FE $41 $81 $01 $03 $01 $05 <pre>$83 $FE $41 $81 $01 $03 $01 $05
Linia 72: Linia 83:
$C0-$CF - ustaw głośność nut na równą N-$C0 $C0-$CF - ustaw głośność nut na równą N-$C0
 +
$D0-$DF - ustaw tempo grania na równe N-$D0 $D0-$DF - ustaw tempo grania na równe N-$D0
 +
$Ex - koniec patternu (x - dowolne 4 bity) $Ex - koniec patternu (x - dowolne 4 bity)
Linia 86: Linia 99:
00-0F - starsze bajty adresów początku sampli 00-0F - starsze bajty adresów początku sampli
 +
0F-1F - starsze bajty adresów końca sampli (zwiększone o 1) 0F-1F - starsze bajty adresów końca sampli (zwiększone o 1)
 +
1F-? - Dane sampli 1F-? - Dane sampli
Adresy sampli w nagłówku zaczynają się nie od $0000, ale od $9000 (adres bufora na sample w MPT) Adresy sampli w nagłówku zaczynają się nie od $0000, ale od $9000 (adres bufora na sample w MPT)

Wersja z dnia 13:49, 14 lut 2012

Spis treści

Struktura pliku, nagłówek

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-$xxxx - 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 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.

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ę.

Moduł sampli z MPT v2.4

UWAGA. To nie jest plik binarny (DOS)!

Offset:

00-0F - starsze bajty adresów początku sampli

0F-1F - starsze bajty adresów końca sampli (zwiększone o 1)

1F-? - Dane sampli

Adresy sampli w nagłówku zaczynają się nie od $0000, ale od $9000 (adres bufora na sample w MPT)

Personal tools