MUZ (format pliku): Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Mono (dyskusja | edycje)
m →Dane patternów: jak działa odstęp w patternie
Mono (dyskusja | edycje)
Linia 58: Linia 58:
* $80..$ff: odstęp od następnej nuty (bity 0..6)
* $80..$ff: odstęp od następnej nuty (bity 0..6)


''UWAGA!'' Odstęp od następnej nuty wyznacza ilość pustych linii między kolejnymi nutami.
'''UWAGA!''' Odstęp od następnej nuty wyznacza ilość pustych linii między kolejnymi nutami.


Przykład 1: Sekwencja $80,$01,$01,$81,$01 oznacza fragment patternu:
Przykład 1: Sekwencja $80,$01,$01,$81,$01 oznacza fragment patternu:

Wersja z 25 sie 2011, 20:25


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Format pliku używany przez program Sound Tracker.

Postać nieskompresowana

offsetdługośćopis
$0000$0006identyfikator: 'Music '
$0006...dane instrumentów
......dane patternów
......dane songu

Dane instrumentów

Dane instrumentów zaczynają się pojedynczym bajtem określającym ich ilość.

  • $00 - ilość instrumentów
  • $01... - definicje kolejnych instrumentów

Każdy instrument składa się z następujących pól:

  • $00 - nr instrumentu
  • $01 - długość obwiedni głośności instrumentu
  • $02 - zapętlenie obwiedni głośności instrumentu
  • $03 - znieksztalcenie (AUDCx)
  • $04... - kolejne bajty obwiedni głośności
  • $xx - długość obwiedni częstotliwościowej instrumentu
  • $xx+$01 - zapętlenie obwiedni częstotliwościowej instrumentu
  • $xx+$02 - ?
  • $xx+$03... - kolejne bajty obwiedni częstotliwościowej instrumentu

Obwiednia częstotliwościowa przyjmuje 8, jako "wartość zerową".

Dane patternów

Dane patternów zaczynają się pojedynczym bajtem określającym ich ilość.

  • $00 - ilość patternów
  • $01... - definicje kolejnych patternów

Każdy pattern zawiera dane na wszystkich 4 kanałów POKEYa naraz i tworzy następującą strukturę:

  • $01 - nr patternu
  • $02 - długość patternu
  • $03 - tempo
  • $04 - wartość wpisywana do rejestru kontroli AUDCTL
  • $05... - definicje ścieżek dla 4 kanałów POKEYa

Każda ścieżka składa się z pól:

  • $00 - długość ścieżki
  • $01... - dane ścieżki

Ścieżka zawiera następujące polecenia:

  • $00..$3f: nuta
  • $40..$5f: instrument (bity 0..4)
  • $80..$ff: odstęp od następnej nuty (bity 0..6)

UWAGA! Odstęp od następnej nuty wyznacza ilość pustych linii między kolejnymi nutami.

Przykład 1: Sekwencja $80,$01,$01,$81,$01 oznacza fragment patternu:

C-1
C-1
---
C-1

Przykład 2: Sekwencja $81,$01,$01 oznacza fragment patternu:

---
C-1
---
C-1
---

Dane songu

Opis songu tworzy następującą strukturę:

  • $00 - zapętlenie songu
  • $01 - długość songu
  • $02... - kolejne numery patternów

Postać skompresowana

offsetdługośćopis
$0000$0004tablica zapętleń tracków
$0004$0004tablica LSB adresów tracków
$0008$0004tablica MSB adresów tracków
$000C$0002adres tablicy adresów patternów
$000E$0002adres tablicy adresów obwiedni głośności
$0010$0002adres tablicy adresów obwiedni częstotliwości
$0012$0002adres tablicy instrumentów
$0014...definicje tracków
......tablica adresów patternów
......tablica adresów obwiedni głośności
......tablica adresów obwiedni częstotliwości
......tablica instrumentów
......dane obwiedni głośności
......dane obwiedni częstotliwości
......dane patternów

Track

Rozkazy, które może zawierać track:

  • $00..$FC - numer patternu do odegrania,
  • $FD xx - ustawia AUDCTL wartością xx,
  • $FE xx - ustawia tempo,
  • $FF - powoduje zapętlenie tracka.

Pattern

Rozkazy, które może zawierać pattern:

  • $00..$3F - nuta,
  • $40..$7F - instrument (bity 0..5),
  • $80..$FE - puste linie ($80 - 0 linii, $81 - 1 linia... $FE - 127 pustych linii),
  • $FF - koniec patternu.

Instrument

Każdy instrument składa się z 4 pól:

  • $00: zapętlenie obwiedni głośności,
  • $01: zapętlenie obwiedni częstotliwości,
  • $02: zniekształcenie (AUDCx),
  • $03: ?.

Obwiednia głośności

Rozkazy obwiedni głośności:

  • $00..$FE - bajty postaci $xy, gdzie x to kod sterujący, y to głośność,
  • $FF - koniec obwiedni

Obwiednia częstotliwości

Rozkazy obwiedni głośności:

  • $00..$FE - bajty postaci $xy, gdzie x to kod sterujący, y to odchylenie od częstotliwości bazowej,
  • $FF - koniec obwiedni

Odchylenie "zerowe" ma wartość 8.

Tablice adresów patternów, obwiedni głośności i obwiedni częstotliwości

Każda tablica adresów zawiera adresy zapisane w kolejności LSB, MSB.