MPT (format pliku)
From Atariki
Wersja z dnia 22:13, 15 lut 2012 Mono (Dyskusja | wkład) (sample przesuniete do osobnego artykulu) ← Previous diff |
Aktualna wersja Mono (Dyskusja | wkład) (dane instrumentu wg dokumentacji) |
||
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 43: | Linia 44: | ||
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), 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== | ==Dane patternów== | ||
Linia 56: | Linia 103: | ||
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 |
- | | | | | --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</pre> | + | 4 puste pozycje na początku patternu |
+ | </pre> | ||
reprezentuje pattern: | reprezentuje pattern: | ||
- | <pre>--- -- | + | <pre> |
+ | --- -- | ||
--- -- | --- -- | ||
--- -- | --- -- | ||
Linia 80: | Linia 130: | ||
--- -- | --- -- | ||
E-1 01 | E-1 01 | ||
- | --- --</pre> | + | --- -- |
+ | </pre> | ||
Pominięto głośność brzmień. | Pominięto głośność brzmień. | ||
Linia 92: | Linia 143: | ||
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 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== | ==Linki== | ||
- | * Opis formatu sampli [[SND]] z MPT 2.4 | + | * 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] | * [http://energy.scene.pl/index.php?page=opis-formatu-mpt Opis formatu plików MPT] | ||
[[Kategoria: Formaty plików]] | [[Kategoria: Formaty plików]] |
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
- Opis formatu sampli SMP z MPT 2.4
- Opis formatu plików MPT