CMC (format pliku)

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 13:58, 7 wrz 2005
KMK (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Mono (Dyskusja | wkład)
(Linki - INS)
Linia 1: Linia 1:
-Format pliku używany przez program [[Chaos Music Composer]]. Plik .CMC jest dosowym plikiem, zawiera 6 bajtowy nagłówek Dosa.+Format pliku używany przez program [[Chaos Music Composer]]. Plik .CMC jest dosowym plikiem, zawiera 6 bajtowy nagłówek [[Binarny plik DOSu|DOSu]].
-== Pierwsze bajty w pliku (pomijając nagłówek DOSa): ==+== Pierwsze bajty w pliku (pomijając nagłówek DOSa) ==
- +{| border="1"
-Offset:+|align="center"|Offset ||align="center"|Opis
- +|-
-*$00 - $12 Podpis - "Cmc Data File" +|align="center"| $00 - $12 || Podpis - '''CMC Data File'''
-*$13 Tempo. (globalne) +|-
-*$14 - $53 Tablica adresów Patternów - młodsze bajty. +|align="center"| $13 || Tempo (globalne)
-*$54 - $93 Tablica adresów Patternów - starsze bajty. +|-
-*$94 - $12f Tablica definicji instrumentów i mapa akcentów. +|align="center"| $14 - $53 || Tablica adresów Patternów - młodsze bajty
-*$130 - $1ff Definicja obwiedni instrumentów (głośności) +|-
-*$200 - $254 1 ścieżka w SONG (1 kanał w CMC) +|align="center"| $54 - $93 || Tablica adresów Patternów - starsze bajty
-*$255 - $2a9 2 ścieżka w SONG (2 kanał w CMC)+|-
-*$2AA - $2ff 3 scieżka w SONG (3 kanał w CMC)+|align="center"| $94 - $12f || Tablica definicji instrumentów i mapa akcentów
-*$300 - end Dane patternów. +|-
- +|align="center"| $130 - $1ff || Definicja obwiedni instrumentów (głośności)
- +|-
-== Definicje instrumentów: ==+|align="center"| $200 - $254 || 1 ścieżka w SONG (1 kanał)
 +|-
 +|align="center"| $255 - $2a9 || 2 ścieżka w SONG (2 kanał)
 +|-
 +|align="center"| $2AA - $2ff || 3 scieżka w SONG (3 kanał)
 +|-
 +|align="center"| $300 - end || Dane patternów
 +|}
 +== Definicje instrumentów ==
* offset = numer instrumentu x 6 * offset = numer instrumentu x 6
 +* Pierwsze cztery bajty to wartości z prawej strony edytora instrumentów:
-* Pierwsze cztery bajty to wartości z prawej strony edytora instrumentów w CMC. + AB - akcent:
 + A - 0..c=transpozycja (w górę od tonu podstawowego), f=D-6, e=G-5, d=C-5
 + B - zniekształcenie akcentu 0=8, 1=a, 2=2, 3=4
 + CD - zniekształcenie i rodzaj brzmienia oraz slajdy
 + C - zniekształcenie (tylko parzyste wartości) + na najmłodszym bicie "slide-down"
 + D - rodzaj brzmienia (0..3-jednokanałowe, 4..7-dwukanałowe) + na najstarszym bicie "slide-up":
 + 0: standardowy
 + 1: wibrujący
 + 2: standardowy (?)
 + 3: bas (stroi niżej)
 + 4: dudniący
 + 5: syntetyczny
 + 6: filtrowany
 + 7: czysty (stroi wyżej)
 + EF - transpozycja i delta:
 + E - transpozycja (w górę od tonu podstawowego)
 + F - głębokość wibracji lub odstęp między częstotliwościami dla dźwięków dwukanałowych
 + GG - wybrzmiewanie: co ile ramek zmniejszana jest głośność instrumentu aż do osiągnięcia ciszy (00=256 ramek, ff=255, ... 01=1).
-* Jeśli definicja instrumentu ma ustawione "slide up" (strzałka w górę w CMC), wtedy w drugim bajcie zostaje ustawiony 3 bit. (zwiększony jest o wartość 8)+* Jeśli definicja instrumentu ma ustawione "slide up" (strzałka w górę), wtedy w drugim bajcie zostaje ustawiony 3 bit. (zwiększony jest o wartość 8)
-* Jeśli definicja instrumentu ma ustawione "slide down" (strzałka w dół w CMC), wtedy w drugim bajcie zostaje ustawiony 4 bit, (zwiększony jest o wartość 16)+* Jeśli definicja instrumentu ma ustawione "slide down" (strzałka w dół), wtedy w drugim bajcie zostaje ustawiony 4 bit, (zwiększony jest o wartość 16)
- +* Kolejne 2 bajty to mapa bitowa akcentów - kolejny bit, kolejny akcent w definicji obwiedni:
-* Kolejne 2 bajty to mapa bitowa akcentów - kolejny bit, kolejny akcent w definicji obwiedni w CMC.+
 + bajt: 0 1
 + bit: 76543210 76543210
 +
 + wartość: xxxxxxxx xxxxxxx0 0-ton, 1-akcent
 +
 + pozycja: 00000000 0111111
 + 12345678 9012345
-== Definiticja obwiedni: ==+== Definicja obwiedni ==
- +
* offset = numer instrumentu x 8, * offset = numer instrumentu x 8,
- 
* kolejne osiem bajtów stanowią definicję - 16 połówek bajtu (nibble) o wartości (0-15) - od lewej do prawej strony, pierwszy dolny nibble, kolejny górny. * kolejne osiem bajtów stanowią definicję - 16 połówek bajtu (nibble) o wartości (0-15) - od lewej do prawej strony, pierwszy dolny nibble, kolejny górny.
 +== Dane ścieżek w oknie Song ==
 +Wszystkie ścieżki w oknie SONG zawierają numery kolejno odtwarzanych patternów, ale wartości z ustawionym 7 bitem (+ $80) są bajtami kontrolnymi:
-== Dane ścieżek w oknie Song : ==+{| border="1"
- +|align="center"|Wartość ||align="center"|Klawisz w CMC ||align="center"|Opis
-Wszystkie ścieżki w oknie SONG zawierają numery kolejno odtwarzanych patternów, ale wartości z ustawionym 7 bitem (+ $80) są bajtami kontrolnymi : +|-
- +|align="center"| $8F ||align="center"|SHIFT '''S''' || STOP - zatrzymuje odtwarzanie songu ale instrumenty są odtwarzane do końca.
-Wartość Klawisz w CMC Opis +|-
- +|align="center"| $9F ||align="center"|SHIFT '''J''' || JUMP - skacze do linii w songu - wartość pozycji jest w brana z 2 ścieżki. (na tej samej pozycji)
-*$8F SHIFT S STOP - zatrzymuje odtwarzanie songu ale instrumenty są odtwarzane do końca. +|-
-*$9F SHIFT J JUMP - skacze do lini w songu - wartość pozycji jest w brana z 2 ścieżki. (na tej samej pozycji) +|align="center"| $AF ||align="center"|SHIFT '''U''' || UP - skacz w górę ileś linii - ilość linii jest brana z 2 ścieżki.
-*$AF SHIFT U UP - skacz w górę ileś lini - ilość lini jest brana z 2 ścieżki. +|-
-*$BF SHIFT D DOWN - skacz w dół ileś lini - j.w. +|align="center"| $BF ||align="center"|SHIFT '''D''' || DOWN - skacz w dół ileś linii - j.w.
-*$CF SHIFT T TEMPO - ustaw nowe tempo - wartość z 2 ścieżki.+|-
-*$DF SHIFT R REPLAY - pętla odtwarzana n razy na m pozycjach w dół, n brana z 3 ścieżki, m - z 2. +|align="center"| $CF ||align="center"|SHIFT '''T''' || TEMPO - ustaw nowe tempo - wartość z 2 ścieżki.
-*$EF SHIFT B BREAK - zatrzymaj odtwarzanie danego songu i skacz do góry do pierszej lini po napotkanej takiej samej wartości lub do początku songu. +|-
-*$FF,$FE - pusta pozycja - nie odtwarza na tej ścieżce żadnego patternu.+|align="center"| $DF ||align="center"|SHIFT '''R''' || REPLAY - pętla odtwarzana n razy na m pozycjach w dół, n brana z 3 ścieżki, m - z 2.
 +|-
 +|align="center"| $EF ||align="center"|SHIFT '''B''' || BREAK - zatrzymaj odtwarzanie danego songu i skacz do góry do pierwszej linii po napotkanej takiej samej wartości lub do początku songu.
 +|-
 +|align="center"| $FF,$FE || || pusta pozycja - nie odtwarza na tej ścieżce żadnego patternu.
 +|}
 +== Dane Patternów ==
 +{| border="1"
 +|align="cenet"|Wartość ||align="center"|Opis
 +|-
 +|align="center"| $00 - $19 || Numer instrumentu który będzie odtwarzany (na kolejnej pozycji zawsze znajduje się numer nuty)
 +|-
 +|align="center"| $40 - $7E || Numer nuty liczony w półtonach (od $C1 do $D6) plus wartość - $40
 +|-
 +|align="center"| $80 - $BD || Ilość pustych linii między nutami plus $7F
 +|-
 +|align="center"| $FF || Koniec patternu
 +|}
-== Dane Patternów : ==+== Uwagi ==
-Wartość Opis+* Sygnatura pliku CMC zawiera bajty: $a0,$e3,$ed,$e3,$a0,$e4,$e1,$f4,$e1,$a0,$e6,$e9,$ec,$e5,$a0. Jest to napis " cmc data file " w inwersie.
 +Za nią znajdują się bajty $8e,$95,$0d,$20 które razem z ostatnim bajtem sygnatury mogą być wykorzystane do rysowania wskaźnika głośności lub equalizera w trybie tekstowym.
 +* Sygnatura pliku CMC+ zawiera bajty: $a0,$c3,$cd,$c3,$ab,$a0,$e4,$e1,$f4,$e1,$e6,$e9,$ec,$e5,$a0. Jest to napis " CMC+ datafile " w inwersie. Za nią znajdują się 4 spacje.
 +* Sygnatura plików CMC z poprawką Jaskra opisaną przez Henryka Karpowicza w magu Serious#11 ma zmodyfikowany (w stosunku do oryginalnej sygnatury CMC) pierwszy bajt - zamiast $a0 znajduje się tam $30. Pozwala to rozpoznać pliki z krótszym 48 pozycyjnym patternem (standardowy ma 64 pozycje).
-*$00 - $19 Numer instrumentu który będzie odtwarzany (na kolejnej pozycji zwsze znajduje się numer nuty) +== Linki ==
-*$40 - $7E Numer nuty liczony w półtonach (od C1 do D6) plus wartość - $40. +
-*$80 - $BD Ilość pustych lini między nutami plus $7F. +
-*$FF - koniec patternu+
 +* [[CM2]]
 +* [[CM3]]
 +* [[CMR]]
 +* [[DMC (format pliku)|DMC]]
 +* [[CMS]]
 +* [[INS (Chaos Music Composer)|INS]]
[[Kategoria:Atari 8-bit]] [[Kategoria:Atari 8-bit]]
[[Kategoria:Formaty plików]] [[Kategoria:Formaty plików]]

Aktualna wersja

Format pliku używany przez program Chaos Music Composer. Plik .CMC jest dosowym plikiem, zawiera 6 bajtowy nagłówek DOSu.

Spis treści

Pierwsze bajty w pliku (pomijając nagłówek DOSa)

Offset Opis
$00 - $12 Podpis - CMC Data File
$13 Tempo (globalne)
$14 - $53 Tablica adresów Patternów - młodsze bajty
$54 - $93 Tablica adresów Patternów - starsze bajty
$94 - $12f Tablica definicji instrumentów i mapa akcentów
$130 - $1ff Definicja obwiedni instrumentów (głośności)
$200 - $254 1 ścieżka w SONG (1 kanał)
$255 - $2a9 2 ścieżka w SONG (2 kanał)
$2AA - $2ff 3 scieżka w SONG (3 kanał)
$300 - end Dane patternów

Definicje instrumentów

  • offset = numer instrumentu x 6
  • Pierwsze cztery bajty to wartości z prawej strony edytora instrumentów:
 AB - akcent:
      A - 0..c=transpozycja (w górę od tonu podstawowego), f=D-6, e=G-5, d=C-5
      B - zniekształcenie akcentu 0=8, 1=a, 2=2, 3=4
 CD - zniekształcenie i rodzaj brzmienia oraz slajdy
      C - zniekształcenie (tylko parzyste wartości) + na najmłodszym bicie "slide-down"
      D - rodzaj brzmienia (0..3-jednokanałowe, 4..7-dwukanałowe) + na najstarszym bicie "slide-up":
          0: standardowy
          1: wibrujący
          2: standardowy (?)
          3: bas (stroi niżej)
          4: dudniący
          5: syntetyczny
          6: filtrowany
          7: czysty (stroi wyżej)
 EF - transpozycja i delta:
      E - transpozycja (w górę od tonu podstawowego)
      F - głębokość wibracji lub odstęp między częstotliwościami dla dźwięków dwukanałowych
 GG - wybrzmiewanie: co ile ramek zmniejszana jest głośność instrumentu aż do osiągnięcia ciszy (00=256 ramek, ff=255, ... 01=1).
  • Jeśli definicja instrumentu ma ustawione "slide up" (strzałka w górę), wtedy w drugim bajcie zostaje ustawiony 3 bit. (zwiększony jest o wartość 8)
  • Jeśli definicja instrumentu ma ustawione "slide down" (strzałka w dół), wtedy w drugim bajcie zostaje ustawiony 4 bit, (zwiększony jest o wartość 16)
  • Kolejne 2 bajty to mapa bitowa akcentów - kolejny bit, kolejny akcent w definicji obwiedni:
    bajt: 0        1
     bit: 76543210 76543210
 
 wartość: xxxxxxxx xxxxxxx0    0-ton, 1-akcent
 
 pozycja: 00000000 0111111
          12345678 9012345

Definicja obwiedni

  • offset = numer instrumentu x 8,
  • kolejne osiem bajtów stanowią definicję - 16 połówek bajtu (nibble) o wartości (0-15) - od lewej do prawej strony, pierwszy dolny nibble, kolejny górny.

Dane ścieżek w oknie Song

Wszystkie ścieżki w oknie SONG zawierają numery kolejno odtwarzanych patternów, ale wartości z ustawionym 7 bitem (+ $80) są bajtami kontrolnymi:

Wartość Klawisz w CMC Opis
$8F SHIFT S STOP - zatrzymuje odtwarzanie songu ale instrumenty są odtwarzane do końca.
$9F SHIFT J JUMP - skacze do linii w songu - wartość pozycji jest w brana z 2 ścieżki. (na tej samej pozycji)
$AF SHIFT U UP - skacz w górę ileś linii - ilość linii jest brana z 2 ścieżki.
$BF SHIFT D DOWN - skacz w dół ileś linii - j.w.
$CF SHIFT T TEMPO - ustaw nowe tempo - wartość z 2 ścieżki.
$DF SHIFT R REPLAY - pętla odtwarzana n razy na m pozycjach w dół, n brana z 3 ścieżki, m - z 2.
$EF SHIFT B BREAK - zatrzymaj odtwarzanie danego songu i skacz do góry do pierwszej linii po napotkanej takiej samej wartości lub do początku songu.
$FF,$FE pusta pozycja - nie odtwarza na tej ścieżce żadnego patternu.

Dane Patternów

Wartość Opis
$00 - $19 Numer instrumentu który będzie odtwarzany (na kolejnej pozycji zawsze znajduje się numer nuty)
$40 - $7E Numer nuty liczony w półtonach (od $C1 do $D6) plus wartość - $40
$80 - $BD Ilość pustych linii między nutami plus $7F
$FF Koniec patternu

Uwagi

  • Sygnatura pliku CMC zawiera bajty: $a0,$e3,$ed,$e3,$a0,$e4,$e1,$f4,$e1,$a0,$e6,$e9,$ec,$e5,$a0. Jest to napis " cmc data file " w inwersie.

Za nią znajdują się bajty $8e,$95,$0d,$20 które razem z ostatnim bajtem sygnatury mogą być wykorzystane do rysowania wskaźnika głośności lub equalizera w trybie tekstowym.

  • Sygnatura pliku CMC+ zawiera bajty: $a0,$c3,$cd,$c3,$ab,$a0,$e4,$e1,$f4,$e1,$e6,$e9,$ec,$e5,$a0. Jest to napis " CMC+ datafile " w inwersie. Za nią znajdują się 4 spacje.
  • Sygnatura plików CMC z poprawką Jaskra opisaną przez Henryka Karpowicza w magu Serious#11 ma zmodyfikowany (w stosunku do oryginalnej sygnatury CMC) pierwszy bajt - zamiast $a0 znajduje się tam $30. Pozwala to rozpoznać pliki z krótszym 48 pozycyjnym patternem (standardowy ma 64 pozycje).

Linki

Personal tools