MPT (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 16:05, 6 mar 2011
Tebe (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(dane instrumentu wg dokumentacji)
Linia 1: Linia 1:
-<pre>+{{SDP}}
-MPT v2.4 file format:+ 
 +Plik MPT jest [[Binarny plik DOSu|plikiem binarnym DOS]].
-1. Struktura pliku. Nagłówek+==Struktura pliku==
- 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
Linia 17: Linia 17:
$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
 +$????-$???? - dane brzmień
-Ilość danych dla jednego tracku zależy od różnicy pomiędzy adresami sąsiednich tracków+$????-$???? - dane patternów
 +==Dane brzmień==
-?-? - dane brzmień+Brzmienie ma długość 48 bajtów, jeśli nie jest puste. Pierwsze 32 bajty układają się w pary:
-?-? - dane patternów+BG PN.. (x16)
 +gdzie:
-2. Dane brzmień.+B - barwa dzwięku - 4 bity (starsze)
 +G - głośność dźwięku - 4 bity (młodsze)
-Brzmienie ma długość 48 bajtów, jeśli nie jest puste.+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)
-Pierwsze 32 bajty układają się w pary:+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).
 +===Numery akcentów===
-BG PN.. (x16)+* 0 - brak akcentu
 +* 1 - parametr zostanie wpisany do AUDF
 +* 2 - parametr+AUDF zostanie wpisany do AUDF
 +* 3 - parametr+(numer nuty) zostanie wpisany do AUDF
 +* 4 - to co 1 oraz wyłączenie dzielnika
 +* 5 - to co 1 oraz rejestr 9-cio bitowy
 +* 6 - to co 1 oraz włączenie 15kHz
 +* 7 - parametr AND wartość losowa do AUDF
-gdzie:+Uwagi:
-B - barwa dzwięku - 4 bity (starsze)+* 4 dotyczy tylko kanałów 0 i 2,
 +* 5 działa tylko dla zniekształceń 0 i 8
 +* 6 zmienia wszystkie kanały
 +* wszystkie akcenty prócz 4,5,6, wpisują $00 do AUDCTL
-G - głośność dźwięku - 4 bity (młodsze)+===Parametry instrumentu===
-P - numery parametrów akcentów pomnożone przez 2 (drugi rząd) - 4 bity (starsze)+Pierwsza kolumna wartości zawiera tzw. parametry sterowania instrumentem i są
 +równie ważne jak akcenty.
-N - numery akcentów (pierwszy rząd) - 4 bity (młodsze)+* numer efektu (lewa połówka) oraz jego parametr sterujący (prawa połówka). Efektów jest 8 (0-7) i sterują wyłącznie częstotliwością instrumentu. Ale uwaga! wpisanie dowolnego akcentu spowoduje wyłączenie efektu.
 +** 0 - jest to łagodne falowanie częstotliwości, o głębokości parametru (efekt ten wykorzystują głównie muzycy grający na instrumentach strunowych);
 +** 1 - dodanie parametru do AUDF (wykorzystane min. w dołączonej muzyczce DIMX);
 +** 2 - powoduje opadanie częstotliwości z prędkością podaną w parametrze;
 +** 3 - powoduje bardzo szybkie opadanie częstotliwości o kilka nut;
 +** 4 - to co 2 lecz podwyższanie częstotliwości;
 +** 5 - to co 3 lecz podwyższanie częstotliwości;
 +** 6 - jest to głębokie falowanie częstotliwości (może posłużyć do wykonywania różnych efektów dźwiękowych w grach);
 +** 7 - to co 6 lecz na znacznie większą skalę;
-następne 8 bajtów to parametry sterujące instrumentem (pierwszy rząd z lewej)+Uwagi:
-kolejne 8 bajtów to parametry akcentów (drugi rząd z lewej)+Wpisywanie numerów efektów większych niż 7 może okazać się niebezpieczne dla playerów odgrywających muzykę w grach.
 +* Każdy efekt nie musi działać zaraz na początku instrumentu, może się rozpocząć dopiero po upływie pewnego czasu, a takie opóźnienie możemy wpisać do prawej połówki następnej wartości (znajdującej się poniżej).
 +* Ponieważ każdy instrument może korzystać z innej tablicy częstotliwości to jej numer wpiszemy w lewą połówkę tej następnej wartości. Tablice standartowe w MPt są przystosowane do następujących brzmień, 0-$A, 1-$C, 2-$C oraz 3-$2 (ale z wyłączonym dzielnikiem).
 +* Trzecia wartość będzie regulować prędkość wyciszania instrumentu i zawiera się w przedziale $00-$FF przy czym $00 oznacza ciągły dźwięk, bez wyciszenia.
 +* Następna wartość (czwarta) będzie wpisywana do AUDCTL i może być różna dla innych kanałów, chociaż może ona wpływać na ich brzmienie.
 +* Ostatnie cztery wartości są cyklicznie dodawane do numeru nuty. Mogą posłużyć jako transpozycja instrumentu (cztery wartości są takie same) lub też jako powszechnie używany efekt - tremolo (używany w "normalnej" muzyce np. przy grze na bałałajce,mandolinie) przykładowo $00,$0C,$00,$0C lub $00,$03,$05,$07 na zniekształceniu $A.
-3. Dane Patternów.+Druga kolumna to parametry używane przy akcentach, ale uwaga! Włączenie filtru (na kanale 0 lub 2) powoduje automatyczne "zajęcie" parametru 0. Po włączeniu filtru możemy tam wpisywać różne wartości zmieniając tym samym barwę tegoż filtru. Oczywiście jeśli ktoś chce to może wykorzystać tą wartość do sterowania akcentem, pamiętać należy jednak, że każda zmiana będzie wpływać zarówno na filtr jak i na akcent.
- bajt (N) działanie+==Dane patternów==
- 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)
Linia 72: Linia 100:
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:
 +<pre>
$83 $FE $41 $81 $01 $03 $01 $05 $83 $FE $41 $81 $01 $03 $01 $05
- | | | | | | | |+ | | | | | | | |
- | | | | --numery półtonów+ | | | | +---+---+---+- numery półtonów
- | | | |+ | | | |
- | | | 1 odstęp pomiędzy nutami+ | | | 1 odstęp pomiędzy nutami
- | | |+ | | |
- | | ustaw brzmienie #1+ | | ustaw brzmienie #1
- ----+ +---+
| |
4 puste pozycje na początku patternu 4 puste pozycje na początku patternu
 +</pre>
reprezentuje pattern: reprezentuje pattern:
 +<pre>
--- -- --- --
--- -- --- --
Linia 101: Linia 131:
E-1 01 E-1 01
--- -- --- --
 +</pre>
Pominięto głośność brzmień. Pominięto głośność brzmień.
Linia 110: Linia 141:
$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 !!! - 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 par bajtów:
-UWAGA #2 !!!+* pattern ($00..$3f)
 +* transpozycja
-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ę.+Na pozycji patternu w tracku #1 można zapisać rozkazy:
 +* $FE - zatrzymanie utworu
 +* $FF pozycja - skok do pozycji w tracku
-MODUŁ SAMPLI z MPT v2.4+== Uwagi ==
-UWAGA !!! - TO NIE JEST PLIK BINARNY (DOSOWY)+1. 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ę.
-od-do opis+2. Często stosowane rozszerzenia pliku w tym formacie to:
-00-0F - starsze bajty adresów początku sampli+* MPF dla muzyki z 256 pozycjami w tracku,
 +* MD1 dla muzyki z jednym samplowanym kanałem,
 +* MD2 dla muzyki z dwoma samplowanymi kanałami.
-0F-1F - starsze bajty adresów końca sampli (zwiększone o 1)+==Linki==
-1F-? - Dane sampli+* Opis formatu sampli [[SMP (Music ProTracker)|SMP]] z MPT 2.4
 +* [http://energy.scene.pl/index.php?page=opis-formatu-mpt Opis formatu plików MPT]
- +[[Kategoria: Formaty plików]]
-UWAGA !!! - adresy sampli w nagłówku zaczynają się nie od $0000, ale od $9000 (adres bufora na sample w MPT)+
-</pre>+

Aktualna wersja

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

Numery akcentów

  • 0 - brak akcentu
  • 1 - parametr zostanie wpisany do AUDF
  • 2 - parametr+AUDF zostanie wpisany do AUDF
  • 3 - parametr+(numer nuty) zostanie wpisany do AUDF
  • 4 - to co 1 oraz wyłączenie dzielnika
  • 5 - to co 1 oraz rejestr 9-cio bitowy
  • 6 - to co 1 oraz włączenie 15kHz
  • 7 - parametr AND wartość losowa do AUDF

Uwagi:

  • 4 dotyczy tylko kanałów 0 i 2,
  • 5 działa tylko dla zniekształceń 0 i 8
  • 6 zmienia wszystkie kanały
  • wszystkie akcenty prócz 4,5,6, wpisują $00 do AUDCTL

Parametry instrumentu

Pierwsza kolumna wartości zawiera tzw. parametry sterowania instrumentem i są równie ważne jak akcenty.

  • numer efektu (lewa połówka) oraz jego parametr sterujący (prawa połówka). Efektów jest 8 (0-7) i sterują wyłącznie częstotliwością instrumentu. Ale uwaga! wpisanie dowolnego akcentu spowoduje wyłączenie efektu.
    • 0 - jest to łagodne falowanie częstotliwości, o głębokości parametru (efekt ten wykorzystują głównie muzycy grający na instrumentach strunowych);
    • 1 - dodanie parametru do AUDF (wykorzystane min. w dołączonej muzyczce DIMX);
    • 2 - powoduje opadanie częstotliwości z prędkością podaną w parametrze;
    • 3 - powoduje bardzo szybkie opadanie częstotliwości o kilka nut;
    • 4 - to co 2 lecz podwyższanie częstotliwości;
    • 5 - to co 3 lecz podwyższanie częstotliwości;
    • 6 - jest to głębokie falowanie częstotliwości (może posłużyć do wykonywania różnych efektów dźwiękowych w grach);
    • 7 - to co 6 lecz na znacznie większą skalę;

Uwagi:

Wpisywanie numerów efektów większych niż 7 może okazać się niebezpieczne dla playerów odgrywających muzykę w grach.

  • Każdy efekt nie musi działać zaraz na początku instrumentu, może się rozpocząć dopiero po upływie pewnego czasu, a takie opóźnienie możemy wpisać do prawej połówki następnej wartości (znajdującej się poniżej).
  • Ponieważ każdy instrument może korzystać z innej tablicy częstotliwości to jej numer wpiszemy w lewą połówkę tej następnej wartości. Tablice standartowe w MPt są przystosowane do następujących brzmień, 0-$A, 1-$C, 2-$C oraz 3-$2 (ale z wyłączonym dzielnikiem).
  • Trzecia wartość będzie regulować prędkość wyciszania instrumentu i zawiera się w przedziale $00-$FF przy czym $00 oznacza ciągły dźwięk, bez wyciszenia.
  • Następna wartość (czwarta) będzie wpisywana do AUDCTL i może być różna dla innych kanałów, chociaż może ona wpływać na ich brzmienie.
  • Ostatnie cztery wartości są cyklicznie dodawane do numeru nuty. Mogą posłużyć jako transpozycja instrumentu (cztery wartości są takie same) lub też jako powszechnie używany efekt - tremolo (używany w "normalnej" muzyce np. przy grze na bałałajce,mandolinie) przykładowo $00,$0C,$00,$0C lub $00,$03,$05,$07 na zniekształceniu $A.

Druga kolumna to parametry używane przy akcentach, ale uwaga! Włączenie filtru (na kanale 0 lub 2) powoduje automatyczne "zajęcie" parametru 0. Po włączeniu filtru możemy tam wpisywać różne wartości zmieniając tym samym barwę tegoż filtru. Oczywiście jeśli ktoś chce to może wykorzystać tą wartość do sterowania akcentem, pamiętać należy jednak, że każda zmiana będzie wpływać zarówno na filtr jak i na akcent.

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 par 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

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

2. Często stosowane rozszerzenia pliku w tym formacie to:

  • MPF dla muzyki z 256 pozycjami w tracku,
  • MD1 dla muzyki z jednym samplowanym kanałem,
  • MD2 dla muzyki z dwoma samplowanymi kanałami.

Linki

Personal tools