NEO

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 16:44, 25 wrz 2006
Epi (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(Dane patternów - niescislosci)
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 paternó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 paternów</td></tr>+<tr><td>$00b0</td><td>$0080</td><td>starsze bajty adresów patternów</td></tr>
<tr><td>$0130</td><td>$0400</td><td>nazwy sampli</td></tr> <tr><td>$0130</td><td>$0400</td><td>nazwy sampli</td></tr>
<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 paternów, powiększona o $4000</td></tr>+<tr><td>$0a70</td><td>$0002</td><td>adres końca danych patternów</td></tr>
-<tr><td>$0a72</td><td>...</td><td>dane paternów</td></tr>+<tr><td>$0a72</td><td>...</td><td>dane patternów</td></tr>
<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 (little endian).
Poniższe informacje dotyczą wersji $14 formatu. Poniższe informacje dotyczą wersji $14 formatu.
Linia 26: Linia 28:
=== Dane songu === === Dane songu ===
-Każda linia w songu składa się z ośmiu bajtów, gdzie pierwsze cztery to numery paternów, a kolejne cztery - wartości transpozycji. Oprócz tego, na ścieżce pierwszej numer paternu większy od 127 oznacza skok do linii o numerze podanym w miejscu na wartość transpozycji.+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.
-=== Dane paternów ===+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: 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.+* 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 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).+* 01 - zmiana bieżącego instrumentu, numer zapisany w pozostałych bitach ($00-$3f). Następny bajt zawiera nutę do odegrania ($00-3e). Kolejny bajt oznacza głośność ($00-$20); dodatkowo ustawienie siódmego bitu oznacza, że sampel nie będzie zagrany od początku, a szóstego - że wystąpi dodatkowy bajt komendy efektu.
* 10 - puste linie, pomniejszona o 1 ilość zapisana 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.+* 11 - puste linie z ew. zmianą głośności i ew. komendą efektu. Kiedy w następnym bajcie ustawiony jest bit siódmy wtedy jest to bajt komendy efektu; jeśli bit siódmy jest skasowany wtedy jest to bajt głośności ($00-$20); dodatkowo ustawienie szóstego bitu oznacza, że kolejny bajt będzie dodatkowym bajtem komendy efektu.
Komenda efektu: Komenda efektu:
-* $00 - koniec paternu,+* $00 - koniec patternu,
* $0x - zmiana szybkości odtwarzania, * $0x - zmiana szybkości odtwarzania,
* $1x - płynne ściszanie, * $1x - płynne ściszanie,
Linia 46: Linia 55:
Gdzie x oznacza parametr komendy. Gdzie x oznacza parametr komendy.
-Pojedynczy patern zajmuje od jednego do 256 bajtów.+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. Odtwarzanie nuty D-6 (kod nuty $3e) powoduje odtworzenie sampla z maksymalną częstotliwością.
 + 
 +3. Obszar danych patternów zaczyna się od $4000.
[[Kategoria: Formaty plików]] [[Kategoria: Formaty plików]]

Aktualna wersja

Format modułu muzycznego obsługiwany przez program NeoTracker.

offsetdługośćopis
$0000$0003identyfikator: 'NEO' w ASCII
$0003$0001zarezerwowane (obecnie 0)
$0004$0001numer wersji programu koniecznej do poprawnego wczytania pliku ($10 - 1.12, $14 - 1.4+)
$0005$0001typ pliku: $8e
$0006$0028tytuł utworu (uzupełniony spacjami)
$002e$0001początkowa szybkość odtwarzania
$002f$0001numer sampla oznaczonego jako "long sample" ($ff oznacza brak)
$0030$0080młodsze bajty adresów patternów
$00b0$0080starsze bajty adresów patternów
$0130$0400nazwy sampli
$0530$0040głośności sampli
$0570$0080długości sampli
$05f0$0080pozycje początku pętli (względem początku sampla)
$0670$0400dane songu
$0a70$0002adres końca danych patternów
$0a72...dane patternów
......dane sampli

Wszystkie słowa zapisane są w formacie LSB-MSB (little 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 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). Następny bajt zawiera nutę do odegrania ($00-3e). Kolejny bajt oznacza głośność ($00-$20); dodatkowo ustawienie siódmego bitu oznacza, że sampel nie będzie zagrany od początku, a szóstego - że wystąpi dodatkowy bajt komendy efektu.
  • 10 - puste linie, pomniejszona o 1 ilość zapisana w pozostałych bitach ($00-$3f).
  • 11 - puste linie z ew. zmianą głośności i ew. komendą efektu. Kiedy w następnym bajcie ustawiony jest bit siódmy wtedy jest to bajt komendy efektu; jeśli bit siódmy jest skasowany wtedy jest to bajt głośności ($00-$20); dodatkowo ustawienie szóstego bitu oznacza, że kolejny bajt będzie dodatkowym bajtem 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. Odtwarzanie nuty D-6 (kod nuty $3e) powoduje odtworzenie sampla z maksymalną częstotliwością.

3. Obszar danych patternów zaczyna się od $4000.

Personal tools