MPT (format pliku): Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
albo ktoś z tego zrobi przyzwoity tekst (a nie "wklejkę") albo kasujemy
Nie podano opisu zmian
Linia 1: Linia 1:
{{SDP}}
==Struktura pliku, nagłówek==
<pre>
MPT v2.4 file format:


1. Struktura pliku. Nagłówek
Offset:
 
  offset
od  -  do  - opis


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


?-? - dane brzmień
?-? - dane brzmień
?-? - dane patternów
?-? - dane patternów


==Dane brzmień==


2. Dane brzmień.
Brzmienie ma długość 48 bajtów, jeśli nie jest puste. Pierwsze 32 bajty układają się w pary:
 
 
Brzmienie ma długość 48 bajtów, jeśli nie jest puste.
 
 
Pierwsze 32 bajty układają się w pary:
 


BG PN.. (x16)
BG PN.. (x16)
Linia 47: Linia 26:


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)


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


następne 8 bajtów to parametry sterujące instrumentem (pierwszy rząd z lewej)
==Dane patternów==
 
kolejne 8 bajtów to parametry akcentów (drugi rząd z lewej)
 
 
3. Dane Patternów.
 
  bajt (N) działanie
  wartość
  w zakresie:


$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


działa dopiero po odegraniu nuty (od momentu wystąpienia rozkazu pierwszy odstęp pojawia się za nutą)
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:


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
<pre>$83 $FE $41 $81 $01 $03 $01 $05
  | | | | | | | |
  | | | | | | | |
  | | | | --numery półtonów
  | | | | --numery półtonów
Linia 88: Linia 52:
  ----
  ----
  |
  |
4 puste pozycje na początku patternu
4 puste pozycje na początku patternu</pre>


reprezentuje pattern:
reprezentuje pattern:


--- --
<pre>--- --
--- --
--- --
--- --
--- --
Linia 103: Linia 67:
--- --
--- --
E-1 01
E-1 01
--- --
--- --</pre>


Pominięto głośność brzmień.
Pominięto głośność brzmień.


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


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.


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


MPT v2.4 zapisuje w pliku patterny w ten sposób, że zawsze mają stałą długość, równą ustawionej w nagłówku.
==Moduł sampli z MPT v2.4==
Następuje to poprzez dodanie na końcu patternu rozkazu tworzącego puste pozycje, tak aby każdy pattern
miał identyczną liczbę pozycji.


UWAGA. To nie jest plik binarny (DOS)!


UWAGA #2 !!!
Offset:
 
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 (DOSOWY)
 
od-do opis


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)
UWAGA !!! - adresy sampli w nagłówku zaczynają się nie od $0000, ale od $9000 (adres bufora na sample w MPT)
</pre>

Wersja z 14 lut 2012, 15:45

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-? - 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)