MPT (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 17:57, 12 lut 2012
KMK (Dyskusja | wkład)
(albo ktoś z tego zrobi przyzwoity tekst (a nie "wklejkę") albo kasujemy)
← Previous diff
Wersja z dnia 13:45, 14 lut 2012
Daniel Koźmiński (Dyskusja | wkład)

Next diff →
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 dnia 13:45, 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-? - 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