1 Ostatnio edytowany przez marok (2015-06-08 20:45:48)

Hej,

Wersja file (bardzo nieznacznie zmodyfikowana w stosunku do znanej wersji, ale słabo rozpoznanego i nieużywanego u nas) edytora muzycznego, będącego rozwinięciem CMC z roku '99 by Datri.

Z tego co zaobserwowałem jest szansa, że działa ze Spartą (z pewnymi kłopotami).

Obsługa jest następująca:
Shift + Esc : wejście do menu zarządzania plikami z dysku
Help (na emulatorze 'End'): przełączanie mode: normal | double (ma wpływ na brzmienie instumentów)
Shift + 1-6 : kanał (1-6) zamilknie lub odzyska "głos" - przełącznik

Reszta (przynajmniej z grubsza) jak w standardowym CMC.

Załączam jeszcze (do kompletu i żeby było co posłuchać) dwa music-dyski Poisona, które szczęśliwie wpadły mi w ręce. Wszystkie muzyczki najlepiej słuchać w wersji double (tak zostały przygotowane).
Być może istnieją nowsze wersje tych muzyczek. Są już dostępne w ASMA (ostatnie wydanie).

EDIT:
nowsza wersja.

Post's attachments

Cyber City.zip 39.25 kb, liczba pobrań: 13 (od 2015-06-06) 

EPIC FAIL.zip 38.59 kb, liczba pobrań: 11 (od 2015-06-06) 

SDCMC_2_1a.zip 17.68 kb, liczba pobrań: 5 (od 2015-06-08) 

Tylko zalogowani mogą pobierać załączniki.

2 Ostatnio edytowany przez mono (2015-06-06 21:01:10)

Ooooo. Dzięki :)
Są zdaje się dwie wersje tego edytora różniące się sposobem implementacji funkcji głośności i double-play.

Edit: Mogę się za to podzielić instrukcją.

A klawiaturologia w jakimś skrócie (nie znam czeskiego):

Okno song:
- inverse - zmiana trybu normal/double play
- ctrl+e - o pięć linii w górę
- ctrl+d - o pięć linii w dół
- ctrl+c - skok do pozycji 0 (chyba)
- ctrl+n - zmiana nazwy modułu
- ctrl+s - zapis na kasecie w formacie turbo
- ctrl+l - odczyt z kasety w turbo
- shift+esc - wejście do menu dyskowego

Dodatkowe komendy w songu:
- shift+v: zmiana głośności kanału - V: xx ustawia głośność wszystkich kanałów, V: xx yy ustawia głośność wszystkich kanałów pierwszego pokeya na xx, drugiego na yy (wartości podaje się dziesiętnie 00..15)
- shift+m: zmiana trybu odtwarzania - M: 00 to normal, M: 01 to double
- shift+p: pauza - P: xx yy pauzuje odtwarzanie na czas podany w dziesiętych częściach sekundy (ale jak to podać, skoro wartości w polach songu mogą być 00..63?)

W menu narzędzi dyskowych warto uważać na to, co się wciska, bo:
- shift <,> - zmiana napędu
- 1,2,3,4 to fromatowanie, usuwanie, lock, unlock
- space - katalog
- strzałki - przemieszczają kursor po katalogu
- return - ładuje z dysku wybrany utwór

Ale konia z rzędem temu, kto wie, jak ZAPISAĆ utwór na dysk.

No i zauważyłem, że nie lubi się toto z pamięcią rozszerzoną :/ (u mnie zawisa nawet na DOS II/D+).

Post's attachments

cmc.txt 5.76 kb, liczba pobrań: 12 (od 2015-06-06) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

3

A wejdź w narzędzia dyskowe i ctrl-s? Bo tak zrozumiałem część instrukcji.

Mogę ewentualnie kolegę Słowaka poprosić o tłumaczenie czeski->polski.

4

Dzięki! Tak się to faktycznie robi :)

Jeśli Twój Kolega byłby tak miły, a nie nadwyrężyłbym zbytnio jego uprzejmości, to poprosiłbym jeszcze o ten dokument. Jest to opis drugiej wersji CMC 2000 v.2.02. Obydwa programy są dość podobne, i niewykluczone że instrukcje też bardzo się nie różnią.

Post's attachments

cmc2000.txt 6.52 kb, liczba pobrań: 12 (od 2015-06-06) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

5

Jeśli ktoś z poprawiających CMC ma rozpiskę kodu źródłowego, podejrzewam, że nie byłoby trudno zrobić Super Chaos Music Composer ze WSZYSTKIMI późniejszymi modyfikacjami - aktualnie jest z 10 wersji i co z tego ma szary użytkownik? CHAOS.

Nalegam, aby to rozpatrzyć :)

6

is possible to add new functionality "pattern cut" ? I can cut pattern when I need :)

7

@jamesd: Yes, it is possible.
But the question is how would You like mark it?

I can see solution in two ways:
- Like in "Lotus" module: on all tracks at the same row of all playing patterns occurs (start): the same note (no matther which; or in second variant (safer), C-1 must-be) of the same instrument.

- Special code (\mark) placed in (one is enough) pattern.


Benefit of the first way:
Simplicity of adaptation to "enviromental" conditions. ;)

Benefit of the second way:
Pattens (5 of 6 if all differ from each other) can be played either in full distance (allows better music data compaction, theoretically).

8 Ostatnio edytowany przez marok (2015-06-08 08:06:31)

@mono: Dziękuję za Twój bardzo cenny, "prostujący" post. Niestety mnie (jak zwykle) przydarzyły się w tekście otwierającym wątek niedokładności i grubsze gafy, a dzięki informacjom z Twojego postu, jakoś całość "opowieści" trzyma się jeszcze kupy i coś można będzie z tego wątku sensownego wynieść.

Tej wersji z 2000 cmc (sdcmc?) nie znam i jeśli masz gdzieś link albo możesz dołączyć plik do wątku, to chętnie bym się zapoznał i podziękował za taką przysługę.

Odnośnie pauzy (P: xx yy), to rzecz ma się chyba następująco: yy to wartośc wyrażona w sekundach, ale xx jest wyrażone w ramkach. Pauza sumarycznie wynosi więc yy*$32+xx (ramek).


@qbahusak: Nie mam rozpisanego kodu do cmc (i sdcmc również). Osobiście uważam, że liczne przeróbki cmc w sumie niewiele wnoszą i nie ma specjalnie czego "importować".
(Z rzeczy godnych uwagi, na moje skromne zapewne rozeznanie, można wymienić zmienioną tablicę basów w wersji Rzóga i zestaw fajnych instrumentów w wersji Bartmana (v. 3.0), podstawionych zamiast "fabrycznych").

EDIT: poprawiony opis pauzy.

9

Dzięki za wyjaśnienie tej pauzy :) Wrzucę opis do Atariki przy opisie formatu pliku CMS.
Program nazywa się CMC 2000 v 1.02 ale jednak pochodzi z 6.11.1999 - na załączonej dyskietce masz plik CHAOS2K.XEX.
W przykładowej muzyce GRAVE.CM2 na samym początku jest przykładowe użycie rozkazu V:. Po lewej stronie za to przy każdym układzie są 3 wartości głośności. Na dyskietce są też dokumentacje i program do odczytu tychże (nie umiem się nim posłużyć).
Ładowanie muzyki odbywa się analogicznie, jak w SDCMC ale czasem jak program zawiśnie trzeba wcisnąć RESET i ładować jeszcze raz - zazwyczaj się udaje.

Post's attachments

scmc2.atr 179.64 kb, liczba pobrań: 11 (od 2015-06-07) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

10

@mono: Super dzięki za ten CMC2K.
Prezentuje się wizualnie i funkcjonalnie bardzo ładnie. Chyba ewolucja edytora poszła w kierunku zbliżenia jego możliwości do mpt (tym samym tmc), co było pociągnięciem bardzo słusznym.
Widać, że jest dużo opcji (transpozycja nut w patternie, regulacja głośności poszczególnych kanałów z poziomu patternów), roszerzona definicja instrumentów.

Tylko mam takie wrażenie, że rozwiązane jest to wszystko w szczegółach nie do końca tak, jak myślę że byłoby najlepiej (taka pierwsza ocena "na szybko"). O tym może warto jeszcze kiedyś podyskutować, póki co tylko sygnalizuję, że nie wiem, czy warto byłoby podążać dokładnie wg. tych samym rozwiązań, gdyby oczywiście rozwinął się projekt poszerzania możliwości edytora CMC (SDCMC).

Odnośnie jeszcze rozeznawania jak działa P: w poprzedniej wersji edytora, to poprawiłem wcześniejszy opis, w który wkradł się błąd (liczba sekund pauzy nie jest na pierwszej ale na drugiej pozycji).

11

Dzięki za uściślenie P: - poprawiłem w Atariki.

Jako ciekawostkę może (dla niektórych, bo pewnie sam to zauważyłeś) przytoczę, że CMC jest jednym ze starszych edytorów, ale chyba jedynym (nie zauważyłem niczego takiego w żadnym innym trackerze), który dynamicznie rozkłada dźwięki na kanałach zależnie od użytych rodzajów brzmień (stąd mimo, że pozwala na użycie tylko 3 kanałów muzycznych, to faktycznie dźwięk generuje przez 4 kanały POKEY-a). Był taki wątek o nowym TMC, w którym rozważaliśmy taką funkcjonalność i wydawało mi się że nikt czegoś takiego nie robił, a tu po analizie standardowego playera CMC by Janusz Pelc okazało się, że oczywiście jestem w błędzie :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

12 Ostatnio edytowany przez mono (2015-06-20 12:17:56)

Dwie ciekawostki - może kogoś zainteresuje, że:

1. W patternie są rozkazy do zmiany głośności - kod $2x gdzie x to głośność kanału.
2. W tablicy basów są dwie zmiany w stosunku do tablic dostępnych w innych wersjach CMC (włącznie z Double Stereo CMC v.2.2):
- na pozycji $07 (nuta F#1?) jest wartość $DE - w innych playerach jest $CE
- na pozycji $25 (nuta C#4?) jest wartość $30 - w innych playerach jest $39
ale czy to błąd, czy celowa modyfikacja?

Niestety program źle relokuje kod playera - posiłkowałem się tym, który gra w programie.
Co więcej wydaje mi się, że "double play" działa tak, że wywołuje po sobie dwa razy playera... cokolwiek dziwnie :/

Edit: Rzecz dotyczy oczywiście Double Stereo CMC 2000 v.1.02, choć wersja 2.02 identycznie wywołuje double play.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

13

@mono: double play gra jak napisałeś, ale daje to zupełnie zadawalający efekt.

Kod playera do CMC2000 też sobie analizowałem i mam zdanie, że jedna ze zmian w tablicach częstotliwości to raczej błąd edycyjny, ale druga, stawiałbym że może była zamierzona.

$DE zamiast $CE (tu bym stawiał na błąd)
$30 zamiast $39 ($39 jest powtórzona dwa razy, a są w odległości od siebie o zaledwie 3 pozycje; tu bym podejrzewał świadome działanie)


Jest też różnica w tablicy głośności (256 bajtowej) na niektórych pozycjach w stosunku do wersji 2.02, a obie różnią się od tej z tmc.

Piszesz, że kod playera jest źle relokowany (rozumiem, że chodzi o wersję 2000) ze względu na kod relokatora, jak rozumiem, ale moim zdaniem, o ile tak rzeczywiście jest (sam tego nie zauważyłem, ale też nie generowałem procedury odgrywającej bezpośrednio z tej wersji programu) to nie jest to wina samego kodu, bo kod na pewno jest ten sam, natomiast mogło dojść do błędu w fixup'ach do procedury relokacyjnej.

Ogólnie, to moim zdaniem nie warto supportować wersji 2000, bo format ten jest raczej niedopracowany i nie ma też chyba żadnej twórczości powstałej na bazie tejże.

Gdybyś miał potrzebę jeszcze (bo może sam sobie opracowałeś, albo nie jest to potrzebne) otrzymać zdeasemblowany i poetykietowany (wg nazewnictwa z procedury Jaskiera) kod playerów do cmc, sdcmc i cm2 (wersje z programów i ewentualnie różne modyfikacje), to mogę podesłać na maila.

14

Interesowałem się tymi playerami ze względu na użycie ich w CMCPLAY. Analiza była dość szczątkowa bo na tym etapie chodziło tylko o zapewnienie poprawnego odgrywania modułu i udokumentowanie formatu pliku. Nie udało mi się wszystkiego domyślić - nie wiem np. dlaczego moduł GRAVE.CM2 ma dwa pierwsze bajty ustawione na $88 $42.

Samych programów w tym i kodu relokatora nie analizowałem, bo nie było mi to potrzebne - wyjąłem sobie kod playera bezpośrednio z programu po tym, jak ten zgramy za pomocą ctrl+m pokazał śmieci po deassemblacji.
A różnice w tablicach głośności po prostu przeoczyłem :) Dzięki - uwzględnię to w CMCPLAY-u.

Co do twórczości, to trudno mi się wypowiedzieć, bo Datri nic mi nie wspominał o istniejących utworach poza tymi dostarczonymi na dysku. Ale kto może wiedzieć co tam Czesi i Słowacy robią :) Włączyłem procedurki do playera (tak, jak i AMC) bo a nuż ktoś zechce moduł przygotowany w SDCMC (jakiejkolwiek wersji) wystawić na jakimś compo. Poza tym ciekawiło mnie jakie te programy mają możliwości.
Ogólnie zgadzam się, że nie warto rozwijać tych wersji - sam Autor zdaje się porzucił te projekty już dawno.

A kod chętnie przygarnę - całkiem prawdopodobne, że zauważyłeś więcej niż ja w trakcie pobieżnej analizy. Poprosiłbym więc o emaila.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje