NEO

From Atariki

Revision as of 10:53, 9 maj 2013; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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