CMC (format pliku)
From Atariki
(Różnice między wersjami)
| Wersja z dnia 13:14, 7 wrz 2005 KMK (Dyskusja | wkład) ← Previous diff |
Aktualna wersja Mono (Dyskusja | wkład) (→Linki - INS) |
||
| Linia 1: | Linia 1: | ||
| - | 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) == | ||
| + | {| border="1" | ||
| + | |align="center"|Offset ||align="center"|Opis | ||
| + | |- | ||
| + | |align="center"| $00 - $12 || Podpis - '''CMC Data File''' | ||
| + | |- | ||
| + | |align="center"| $13 || Tempo (globalne) | ||
| + | |- | ||
| + | |align="center"| $14 - $53 || Tablica adresów Patternów - młodsze bajty | ||
| + | |- | ||
| + | |align="center"| $54 - $93 || Tablica adresów Patternów - starsze bajty | ||
| + | |- | ||
| + | |align="center"| $94 - $12f || Tablica definicji instrumentów i mapa akcentów | ||
| + | |- | ||
| + | |align="center"| $130 - $1ff || Definicja obwiedni instrumentów (głośności) | ||
| + | |- | ||
| + | |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 == | |
| - | == Pierwsze bajty w pliku (pomijając nagłówek DOSa): == | + | |
| - | + | ||
| - | Offset: | + | |
| - | + | ||
| - | *$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ł w CMC) | + | |
| - | *$255 - $2a9 2 ścieżka w SONG (2 kanał w CMC) | + | |
| - | *$2AA - $2ff 3 scieżka w SONG (3 kanał w CMC) | + | |
| - | *$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 | |
| - | * 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) | + | B - zniekształcenie akcentu 0=8, 1=a, 2=2, 3=4 |
| - | * 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) | + | CD - zniekształcenie i rodzaj brzmienia oraz slajdy |
| - | + | C - zniekształcenie (tylko parzyste wartości) + na najmłodszym bicie "slide-down" | |
| - | * Kolejne 2 bajty to mapa bitowa akcentów - kolejny bit , kolejny akcent w definicji obwiedni w CMC. | + | D - rodzaj brzmienia (0..3-jednokanałowe, 4..7-dwukanałowe) + na najstarszym bicie "slide-up": |
| - | + | 0: standardowy | |
| - | + | 1: wibrujący | |
| - | == Definiticja obwiedni: == | + | 2: standardowy (?) |
| - | + | 3: bas (stroi niżej) | |
| - | * offset = numer instrumentu x 8 , | + | 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). | ||
| - | * 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. | + | * 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 | ||
| - | == Dane ścieżek w oknie Song : == | + | == 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. | ||
| - | 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 == |
| - | + | 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. | + | {| border="1" |
| - | *$9F SHIFT J JUMP - skacze do lini w songu - wartość pozycji jest w brana z 2 ścieżki. (na tej samej pozycji) | + | |align="center"|Wartość ||align="center"|Klawisz w CMC ||align="center"|Opis |
| - | *$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"| $8F ||align="center"|SHIFT '''S''' || STOP - zatrzymuje odtwarzanie songu ale instrumenty są odtwarzane do końca. |
| - | *$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"| $9F ||align="center"|SHIFT '''J''' || JUMP - skacze do linii w songu - wartość pozycji jest w brana z 2 ścieżki. (na tej samej pozycji) |
| - | *$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"| $AF ||align="center"|SHIFT '''U''' || UP - skacz w górę ileś linii - ilość linii jest brana z 2 ścieżki. |
| + | |- | ||
| + | |align="center"| $BF ||align="center"|SHIFT '''D''' || DOWN - skacz w dół ileś linii - j.w. | ||
| + | |- | ||
| + | |align="center"| $CF ||align="center"|SHIFT '''T''' || TEMPO - ustaw nowe tempo - wartość z 2 ścieżki. | ||
| + | |- | ||
| + | |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 |
[Edytuj]
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 |
[Edytuj]
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
[Edytuj]
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.
[Edytuj]
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. |
[Edytuj]
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 |
[Edytuj]
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).
[Edytuj]
