MUZ (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 23:01, 17 sie 2011
Mono (Dyskusja | wkład)
(w formacie nie ma wersji)
← Previous diff
Wersja z dnia 10:30, 21 sie 2011
Mono (Dyskusja | wkład)
(postać skompresowana)
Next diff →
Linia 2: Linia 2:
Format pliku używany przez program [[Sound Tracker]]. Format pliku używany przez program [[Sound Tracker]].
 +
 +== Postać nieskompresowana ==
<table border=1> <table border=1>
Linia 63: Linia 65:
* $01 - długość songu * $01 - długość songu
* $02... - kolejne numery patternów * $02... - kolejne numery patternów
 +
 +== Postać skompresowana ==
 +
 +<table border=1>
 +<tr><td>offset</td><td>długość</td><td>opis</td></tr>
 +<tr><td>$0000</td><td>$0004</td><td>tablica zapętleń tracków</td></tr>
 +<tr><td>$0004</td><td>$0004</td><td>tablica LSB adresów tracków</td></tr>
 +<tr><td>$0008</td><td>$0004</td><td>tablica MSB adresów tracków</td></tr>
 +<tr><td>$000C</td><td>$0002</td><td>adres tablicy adresów patternów</td></tr>
 +<tr><td>$000E</td><td>$0002</td><td>adres tablicy adresów obwiedni głośności</td></tr>
 +<tr><td>$0010</td><td>$0002</td><td>adres tablicy adresów obwiedni częstotliwości</td></tr>
 +<tr><td>$0012</td><td>$0002</td><td>adres tablicy adresów instrumentów</td></tr>
 +<tr><td>$0014</td><td>...</td><td>definicje tracków</td></tr>
 +<tr><td>...</td><td>...</td><td>tablica adresów patternów</td></tr>
 +<tr><td>...</td><td>...</td><td>tablica adresów obwiedni głośności</td></tr>
 +<tr><td>...</td><td>...</td><td>tablica adresów obwiedni częstotliwości</td></tr>
 +<tr><td>...</td><td>...</td><td>tablica instrumentów</td></tr>
 +<tr><td>...</td><td>...</td><td>dane obwiedni głośności</td></tr>
 +<tr><td>...</td><td>...</td><td>dane obwiedni częstotliwości</td></tr>
 +<tr><td>...</td><td>...</td><td>dane patternów</td></tr>
 +</table>
 +
 +=== 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 tracku.
 +
 +=== Pattern ===
 +
 +Rozkazy, które może zawierać pattern:
 +* $00..$3F - nuta,
 +* $40..$7F - instrument (bity 0..5),
 +* $80..$FE - puste linie ($80 - 1 linia, $81 - 2 linie... $FE - 128 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.
[[Kategoria: Atari 8-bit]] [[Kategoria: Atari 8-bit]]
[[Kategoria: Formaty plików]] [[Kategoria: Formaty plików]]

Wersja z dnia 10:30, 21 sie 2011


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.

Spis treści

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: puste linie (bity 0..6)

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 adresów 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 tracku.

Pattern

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

  • $00..$3F - nuta,
  • $40..$7F - instrument (bity 0..5),
  • $80..$FE - puste linie ($80 - 1 linia, $81 - 2 linie... $FE - 128 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.