NEO
From Atariki
Wersja z dnia 14:26, 7 maj 2013 Mono (Dyskusja | wkład) (→Uwagi) ← Previous diff |
Wersja z dnia 16:58, 7 maj 2013 Mono (Dyskusja | wkład) (drobne usciclenia) Next diff → |
||
Linia 9: | Linia 9: | ||
<tr><td>$0006</td><td>$0028</td><td>tytuł utworu (uzupełniony spacjami)</td></tr> | <tr><td>$0006</td><td>$0028</td><td>tytuł utworu (uzupełniony spacjami)</td></tr> | ||
<tr><td>$002e</td><td>$0001</td><td>początkowa szybkość odtwarzania</td></tr> | <tr><td>$002e</td><td>$0001</td><td>początkowa szybkość odtwarzania</td></tr> | ||
- | <tr><td>$002f</td><td>$0001</td><td>numer sampla oznaczonego jako "long sample"</td></tr> | + | <tr><td>$002f</td><td>$0001</td><td>numer sampla oznaczonego jako "long sample" ($ff oznacza brak)</td></tr> |
<tr><td>$0030</td><td>$0080</td><td>młodsze bajty adresów patternów</td></tr> | <tr><td>$0030</td><td>$0080</td><td>młodsze bajty adresów patternów</td></tr> | ||
<tr><td>$00b0</td><td>$0080</td><td>starsze bajty adresów patternów</td></tr> | <tr><td>$00b0</td><td>$0080</td><td>starsze bajty adresów patternów</td></tr> | ||
Linia 15: | Linia 15: | ||
<tr><td>$0530</td><td>$0040</td><td>głośności sampli</td></tr> | <tr><td>$0530</td><td>$0040</td><td>głośności sampli</td></tr> | ||
<tr><td>$0570</td><td>$0080</td><td>długości sampli</td></tr> | <tr><td>$0570</td><td>$0080</td><td>długości sampli</td></tr> | ||
- | <tr><td>$05f0</td><td>$0080</td><td>pozycje początku pętli</td></tr> | + | <tr><td>$05f0</td><td>$0080</td><td>pozycje początku pętli (względem początku sampla)</td></tr> |
<tr><td>$0670</td><td>$0400</td><td>dane songu</td></tr> | <tr><td>$0670</td><td>$0400</td><td>dane songu</td></tr> | ||
<tr><td>$0a70</td><td>$0002</td><td>ilość danych patternów, powiększona o $4000</td></tr> | <tr><td>$0a70</td><td>$0002</td><td>ilość danych patternów, powiększona o $4000</td></tr> | ||
Linia 21: | Linia 21: | ||
<tr><td>...</td><td>...</td><td>dane sampli</td></tr> | <tr><td>...</td><td>...</td><td>dane sampli</td></tr> | ||
</table> | </table> | ||
+ | |||
+ | Wszystkie słowa zapisane są w formacie LSB-MSB (big-endian). | ||
Poniższe informacje dotyczą wersji $14 formatu. | Poniższe informacje dotyczą wersji $14 formatu. | ||
Linia 32: | Linia 34: | ||
* $80 bajtów numerów patternów na ścieżce 4, | * $80 bajtów numerów patternów na ścieżce 4, | ||
* $80 bajtów transpozycji na ścieżce 4. | * $80 bajtów transpozycji na ścieżce 4. | ||
+ | |||
+ | Wartość ujemna ($80..$ff) numeru patternu w pierwszej ścieżce oznacza rozkaz skoku do pozycji w songu. Argument pobierany jest z bajtu transpozycji patternu ścieżki pierwszej. Skok do bieżącej pozycji lub do pozycji poza songiem ($80..$ff) powoduje zakończenie odtwarzania. | ||
=== Dane patternów === | === Dane patternów === | ||
Linia 60: | Linia 64: | ||
Maksymalna długość sampla dla formatów $10 i $14 wynosi 16384 B, wyjątkiem jest longsample - ten może mieć długość 22528 B. | Maksymalna długość sampla dla formatów $10 i $14 wynosi 16384 B, wyjątkiem jest longsample - ten może mieć długość 22528 B. | ||
- | 2. Odtwarzanie nuty D-6 (kod nuty $3e) powoduje odtworzenie sampla z maksymalną częstotliwością. | + | 2. Adresy patternów zawierają się w zakresie $4000..$7fff. Długość patternu należy określać analizując dane patternu, nie polegając na adresach kolejnych patternów. |
+ | |||
+ | 3. Odtwarzanie nuty D-6 (kod nuty $3e) powoduje odtworzenie sampla z maksymalną częstotliwością. | ||
[[Kategoria: Formaty plików]] | [[Kategoria: Formaty plików]] |
Wersja z dnia 16:58, 7 maj 2013
Format modułu muzycznego obsługiwany przez program NeoTracker.
offset | długość | opis |
$0000 | $0003 | identyfikator: 'NEO' w ASCII |
$0003 | $0001 | zarezerwowane (obecnie 0) |
$0004 | $0001 | numer wersji programu koniecznej do poprawnego wczytania pliku ($10 - 1.12, $14 - 1.4+) |
$0005 | $0001 | typ pliku: $8e |
$0006 | $0028 | tytuł utworu (uzupełniony spacjami) |
$002e | $0001 | początkowa szybkość odtwarzania |
$002f | $0001 | numer sampla oznaczonego jako "long sample" ($ff oznacza brak) |
$0030 | $0080 | młodsze bajty adresów patternów |
$00b0 | $0080 | starsze bajty adresów patternów |
$0130 | $0400 | nazwy sampli |
$0530 | $0040 | głośności sampli |
$0570 | $0080 | długości sampli |
$05f0 | $0080 | pozycje początku pętli (względem początku sampla) |
$0670 | $0400 | dane songu |
$0a70 | $0002 | ilość danych patternów, powiększona o $4000 |
$0a72 | ... | dane patternów |
... | ... | dane sampli |
Wszystkie słowa zapisane są w formacie LSB-MSB (big-endian).
Poniższe informacje dotyczą wersji $14 formatu.
Dane songu
Ułożone w kolejności:
- $80 bajtów oznaczających numery patternów na ścieżce 1,
- $80 bajtów transpozycji na ścieżce 1,
- ...
- $80 bajtów numerów patternów na ścieżce 4,
- $80 bajtów transpozycji na ścieżce 4.
Wartość ujemna ($80..$ff) numeru patternu w pierwszej ścieżce oznacza rozkaz skoku do pozycji w songu. Argument pobierany jest z bajtu transpozycji patternu ścieżki pierwszej. Skok do bieżącej pozycji lub do pozycji poza songiem ($80..$ff) powoduje zakończenie odtwarzania.
Dane patternów
Grupy poleceń rozpoznawane są po najstarszych 2 bitach:
- 00 - rozpoczęcie grania nuty o numerze zawartym w pozostałych bitach ($00-$3e). Następny bajt oznacza głośność ($00-$20); dodatkowo ustawienie siódmego bitu oznacza, że nastąpi jedynie zmiana wysokości dźwięku (sampel nie będzie zagrany od początku), a szóstego - że wystąpi dodatkowy bajt komendy efektu.
- 01 - zmiana bieżącego instrumentu, numer zapisany w pozostałych bitach ($00-$3f).
- 10 - puste linie, pomniejszona o 1 ilość zapisana w pozostałych bitach ($00-$3f).
- 11 - puste linie ze zmianą głośności i ew. komendą efektu. Następny bajt oznacza głośność ($00-$20); dodatkowo ustawienie siódmego bitu oznacza, że nie występuje zmiana głośności, a szóstego - że wystąpi dodatkowy bajt komendy efektu.
Komenda efektu:
- $00 - koniec patternu,
- $0x - zmiana szybkości odtwarzania,
- $1x - płynne ściszanie,
- $2x - płynne zgłaśnianie,
- $3x - portamento w dół,
- $4x - portamento w górę.
Gdzie x oznacza parametr komendy.
Pojedynczy pattern zajmuje od jednego do 256 bajtów.
Uwagi
1. Wersja $10 formatu różni się od $14 następującymi cechami:
- głośności instrumentów w nagłówku (nie w patternie) przyjmują wartości $00..$40,
- sample o deklarowanej długości 0 bajtów w rzeczywistym pliku mają długość 1 bajtu o nieokreślonej wartości.
Maksymalna długość sampla dla formatów $10 i $14 wynosi 16384 B, wyjątkiem jest longsample - ten może mieć długość 22528 B.
2. Adresy patternów zawierają się w zakresie $4000..$7fff. Długość patternu należy określać analizując dane patternu, nie polegając na adresach kolejnych patternów.
3. Odtwarzanie nuty D-6 (kod nuty $3e) powoduje odtworzenie sampla z maksymalną częstotliwością.