atarionline.pl Chaos Music Composer 2.2 - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthormarok
      • CommentTime6 Jun 2020 00:06 zmieniony
       
      Hej.

      Taka na szybko złożona wersja odnowionej edycji CMC2.2, onegdaj publikowanej już wersji (co by nie powiedzieć, kultowego) progu, dokładnie rzecz biorąc już 5 lat temu. Wróciłem do tematu, bo w kilku miejscach na forach była mowa o szybkości działania playera cmc - że niewystarczająca. Chciałem sprawdzić, jak na tle innych wersji sprawować się może ta wersja playerka, którą przygotowywałem raczej wyłącznie pod kątem zwięzłości kodu. Okazało się, że jest najwolniejsza...

      Co prawda różnica były praktycznie żadna w stosunku do oryginalnego playera, ale w niewielkim stopniu ustępował on playerowi Jaskiera. Lekko się tym zawiodłem (choć nie zmartwiłem), ale przede wszystkim wzbudziło to moją ciekawość. Przejrzałem ten kod jeszcze raz nieco świeżym okiem (mogłem się poprzednio nadmiernie spieszyć by skończyć), co pozwoliło wychwycić pewne istotne niedoskonałości rzutujące na jego wydajność. (Poza tym, wcześniej było do ogarnięcia nieco więcej niż teraz mi pozostawało - gdyż był to teraz wyłącznie sam player.)


      Obecna wersja jest już pisana pod kątem możliwie dobrej wydajności. Wydaje mi się, że zbliżyłem się do 15% redukcji czasu wykonywania kodu playera. To całkiem chyba już przyzwoity wynik, chociaż wyłączenie ekranu daje uzysk rzędu 30%, a np. player Fox'a do mpt jest szybszy od i tak zupełnie przyzwoicie przecież niezłej (i powszechnie używanej) wersji dla tego playera (od Jaskiera), w znacznie większym wymiarze niż to.

      Byłoby fajnie jakby się komuś chciało troszkę tą wersją pobawić, w sensie sprawdzenia z grubsza czy działa to normalnie czy są jakieś funkcjonalne usterki.

      W sensie zmian do oryginału, dotknęły one wyłącznie podmiany playera i kodu relokującego player przy nagrywaniu (który w całości i bez zmian przeniosłem z poprzedniej wersji - myślę sobie, że wymaga on jeszcze przeglądnięcia). Jedna drobna funkcjonalność chodzi mi jeszcze po głowie, którą można by dodać, ale generalnie nie jest moją ambicją (dla tej wersji) wnosić coś istotnego do samego progu kompozera.

      Jest jeszcze krótka wstawka kodu, którą na ostatniej prostej w poprzedniej wersji polecił mi do dodania "Lamiel" (jeśli dobrze zapamiętałem ksywę, bo nie znam bliżej kolegi), która coś tam zapewnia w komunikacji z sdx, ale szczegółów nie znam. W każdym bądź razie tu też siedzi to w kodzie (jako taki patch). Poza tym nic więcej nie jest ruszane (poza tym co było absolutnie konieczne, chociaż nie pamiętam już szczegółów - może nawet nic poza podmianą nielicznych miejsc adresów odpowiadających nowym lokacjom zmiennych w playerze).

      Co do przykładowych muzyczek w Atr'ce to dodałem ich kilka. To są w dużej części przeróbki, ale na pewno ciekawie zaaranżowane - z gustem.
      INFODEM3.CMC - ta muzyczka wydaje mi się też jest czyjaś, ale nie udało mi się znaleźć jej ("pierwotnego") autora.
      Stąd, jeśli ktoś rozpoznaje, to chętnie dowiem się o niej czegoś więcej.
      Warto wspomnieć, że autorem przeróbek jest Datri (ewentualnie chyba może jeszcze jego brat), autor przede wszystkim specjalnych wersji CMC, także tych dwu pokeyowych SDCM - moduły CMS.

      I to może tyle na rozpoczęcie tego wątku.


      No może jeszcze (bo chodzi mi to po głowie), ze swojej strony, przy okazji tego mojego wpisu (rzadko się na to decyduję - powiedzmy, że jestem dość ograniczony), chciałbym złożyć oficjalnie swoje osobiste podziękowania za pozytywną energię, przyjazne i miłe odnoszenie się do aktywności innych, osobowość i inteligencję, które wnosił swoją osobą i tak w ostatnich miesiącach ożywiał to miejsce i forum, "nasz kolega" Zbyti. Może to przypadkiem przeczyta i wydadzą mu się te słowa miłe (i stosowne).
      • 2: CommentAuthorMADRAFi
      • CommentTime6 Jun 2020 12:06
       
      Obawiam sie ze juz nie przeczyta. :(
      • 3: CommentAuthorpin
      • CommentTime6 Jun 2020 14:06
       
      .. A co się stało, że tak zapytam?
      • 4:
         
        CommentAuthorDracon
      • CommentTime6 Jun 2020 16:06 zmieniony
       
      Opuścili to forum na zawsze:
      - Zza parawanu alias Jurgi
      - Bluki
      - Sikor
      - Irwin
      - Tenchi
      - RetroBorsuk
      - Zbyti

      Lista rośnie...
      Kto(ś) jeszcze [chce] ? :|
      • 5: CommentAuthorilmenit
      • CommentTime6 Jun 2020 17:06 zmieniony
       
      No szkoda Zbytiego, robił sporo fajnych rzeczy. Pewnie jakby powiedział, że moderacyjnej nadgorliwości żałuje i tego robić więcej nie będzie, to nikt by o to nie miał więcej pretensji.

      @marok - kopę lat :)
      • 6: CommentAuthorpin
      • CommentTime6 Jun 2020 18:06
       
      .. przeczytałem "zza parawanu" i objawiło mi się najgorsze .. ale, doczytawszy listę do końca domniemam, że gość odwalił "Sikoriadę" i się obraził. To dobrze, że nic się złego nie stało ;)
      • 7: CommentAuthormarok
      • CommentTime26 Jun 2020 12:06
       
      Pewne eksperymenty z formatem CMC. Stąd osobna wersja edytora, celowo odróżniająca się cząstkową podmianą kolorów, aby się zorientować "pod czym się jest" - no i że to jeszcze dalekie od jakiegoś finału.

      Ta wersja zapewnia pewne nowe możliwości odtwarzania modułów, które są speparowane poza jeszcze możliwościami edycyjnymi samego edytora (bo to jest zostawione na później). Podstawowa charakterystyka:

      - odtwarza moduły, które grać mają na 3/4 taktu,
      - gra moduły przewidziane do odwarzania 2 razy w ramce.

      Skromnie póki co się ta lista przedstawia, ale zarówno plany, jak i to, co w istocie oferuje player obecny w edytorze, są bogatsze.

      Za chwilę edytor może odtwarzać na większej ilości pokeyów niż jeden i dwa.

      W istocie, player obsługuje większą ilość wywołań na ramkę niż 2 (może do 4, ale jeśli tylko go prosto przestawić, to mógłby i więcej - wszystko zasadza się na jego obecnej wydajności i faktycznej przydatności tegoż). Konfigurować można długość patternów nie tylko na raz - można to zmieniać co pattern. To się przydaje wbrew pozorom w pewnych okolicznościach (jest dobrany z modułów dobry przykład, który polecam).

      Player w tej postaci jest z 17-go tego miesiąca. Od tego czasu sprawdziłem właśnie to (nigdzie się nie spiesząc), czy da się efektywnie przerobić go na odtwarzanie z obsługą powyżej 2 pokeyów. I jak mi się wydaje, da się to tak zrobić.

      Dlatego pozostają pewne wątpliwości, co do kreacji formatu docelowego, będącego roszerzeniem podstawowego - CMC.

      Tutaj staram się postępować ostrożnie i o ile to możliwe wolałbym rozważać to przy udziale innych osób (pewnie najchętniej tych niektórych przez siebie upatrzonych).

      Nie piszę o szczegółach tego, jak działa to, co działa teraz (i jak to zostało rozplanowane, aby tak działało), bo to na taką chwilę pozostawiam, gdy kogoś w tym aspekcie to zainteresuje. W zasadzie przykłady modułów powinny "bronić się" same, o ile się do nich zajrzy.

      Idea tego wszystkiego, jaka się za tym kryje, jest dość prosta. Aby rozszerzyć możliwości playera CMC do takiej postaci, aby przynajmniej wielkościowo nie czuć się skrępowanym ograniczeniami formatu w kreacji "dużych" utworów, co daje się odczuć już dość poważnie przy korzystaniu z dwóch pokeyów (pod wersją CMS edytora).
      • 8:
         
        CommentAuthormav
      • CommentTime26 Jun 2020 13:06
       
      Chętnie przetestuję po weekendzie, ale teraz naszła mnie myśl - czy jest możliwe pozostając w formie cmc, dodać / uwolnić 4 kanał? Rozumiem, że używanie instrumentów 16bit, którymi to cmc zarządza całkiem nieźle, wymusza zablokowanie tego "czwartego" kanału, ale nie zawsze chcemy takiego używać, więc "marnujemy" wtedy ten kanał.
      • 9: CommentAuthortebe
      • CommentTime26 Jun 2020 18:06
       
      nie ma takiej opcji, zapomnij :P
      • 10:
         
        CommentAuthorCOR/ira4
      • CommentTime26 Jun 2020 20:06
       
      ... istnieje gdzieś jakiś tutorial do CMC ?
      • 11: CommentAuthorrosomak
      • CommentTime26 Jun 2020 20:06
       
      CMC był prosty i niestety jeśli chodzi o brzmienie bardzo słaby, niewiele jest utworów z CMC, jeśli w ogóle są, które mają jakąś konkretną wyróżniającą wartość
      • 12:
         
        CommentAuthorCOR/ira4
      • CommentTime26 Jun 2020 21:06 zmieniony
       
      ... oj ,no są i to całkiem w pytę.

      • 13:
         
        CommentAuthorjhusak
      • CommentTime26 Jun 2020 21:06
       

      rosomak:

      CMC był prosty i niestety jeśli chodzi o brzmienie bardzo słaby, niewiele jest utworów z CMC, jeśli w ogóle są, które mają jakąś konkretną wyróżniającą wartość


      Ale jak to?
      • 14: CommentAuthorpin
      • CommentTime26 Jun 2020 23:06
       
      Irata4 - ta wersja stereo, to skąd to masz i jeśli jest tu w archiwum AOL, to który to plik konkretnie?
      • 15: CommentAuthorpoison
      • CommentTime27 Jun 2020 00:06
       
      earlier version of SDCMC which I use :)

      • 16: CommentAuthorrosomak
      • CommentTime27 Jun 2020 08:06
       
      Irata4, Draconus na CMC faktycznie daje radę, drugi kawałek słaby, wg mnie CMC jeśli chodzi o instrumenty, ciekawe brzmienia i generalnie słaby bas jest średniakiem, nigdy nie słyszałem brzmienia podobnego do Yump czy Tanks, czy samplowanych instrumentów jak np w Vicky czy Master Head. Ale może nie mam pojęcia o czym piszę
      • 17:
         
        CommentAuthorCOR/ira4
      • CommentTime27 Jun 2020 14:06
       
      ->link<-

      @rosomak,samplowane instrumenty to trza sobie dosamplować ;),natomiast fajnie że z Pokeya ciągle można wydobywać nowe brzmienia jak to powyższe,jeden z moich ulubionych kawałków kolegi Poison,trafnie nazwany :D.
      • 18: CommentAuthormarok
      • CommentTime27 Jun 2020 15:06
       
      @mav: Dzięki za koment w temacie. Odnośnie testowania to ostrożnie i z wyrozumiałością trzeba by chyba do tego podejść, bo edytor nie jest przystosowany do pełnego zarządzania tymi (nielicznymi) "nadbudówkami" i nawet ich nie ilustruje właściwie (chodzi mi w tym momencie o komendę M, która póki co jest błędnie wyświetlana jako "jump up", oraz o to, że tych dodatkowych możliwości nie da się przez sam edytor wstawiać - bo nie działają skróty klawiszowe, które mają dodawać stosowną komendę i dopuszczalny zakres liczby wprowadzanej przez klawiaturę to jest wartość 63 dla okienka song, gdzie potrzeba teraz już mieć możliwość wprowadzać większą wartość).

      Żeby nie było, to raczej nie są nawet średnio trudne rzeczy (także dla mnie) do zaimplementowania, ale nie chciałem na to tracić teraz czasu. Inne wersje CMC (zwłaszcza do CMS od Datriego) mocno tu są pozmieniane, więc się to da zrobić i to relatywnie prosto.


      Testowanie więc, wydaje mi się, powinno głównie skupić się na tym, czy te dodatkowe komendy czy rozszerzenia komend, działają w ramach zrozumiałych i rozsądnych reguł, i czy może całość gdzieś przy całości tych zmian w jakimś szczególe nie ucierpiała. Chociaż, zdaje mi się, iż za mało jeszcze ingerowałem w sam edytor, aby coś takiego już miało szansę nastąpić (osobna sprawa to player czy gra "dobrze" na czyjeś ucho), ale to może bardziej taka dobra uwaga na przyszłość (jeśli będzie okazja tam coś w edytorze pozmieniać). Głównie więć chodzi o podpatrzenie przez odtwarzanie dołączonych modułów, czy gra to "zrozumiale" (w sensie stosowanych komend) i brzmieniowo ok (jak gra normalny cmc lub, stosownie do modułu, jego przeróbki). W tej chwili pozostawiam to jako taką zagadkę i jakiś rebus, bo nigdzie tego nie opisywałem, więc ktoś może się zmierzyć w zawsze atrakcyjnym "rozszyfrowaniu" zasad, jak komenda T (jej wartość) po zmianach ingeruje w długość patternów (czy istnieją jeszcze jakieś zależności "interpretacyjne" dla konkretnych wartości komendy), jak w ogóle reprezentowane są "duże" liczby przy komendzie (przy tym, czy łatwo do tego dojść samemu, czy jest to czytelne, jeśli chodzi o taką formę zapisu).

      Oczywiście "lista życzeń" przy niezłym rozeznawaniu się w tym, jak działa CMC, jest jak najbardziej wskazana do zgłaszania. Pewnie z takich podpowiedzi będę jakoś brał swoje inspiracje. Zawsze najważniejsza jest, błyskotliwa najlepiej, idea, pomysłowość rozwiązań także w różnych detalach, i najlepiej jeszcze aby się to przeniosło także na styl kodu (wtedy jest miło).

      Pytanie o uwolnienie 4 kanału też jest jak najbardziej uprawnione, co nie znaczy, że realnie o tym myślę (czy uparłbym się to robić).

      W teorii jest to chyba jednak wciąż możliwe (bo jeśli pokey coś może, to w sumie nie ma żadnych ograniczeń), ale w praktyce faktycznie trudno wpaść na ten chyba mocno już błyskotliwy pomysł, aby się wkomponować jakoś do formatu (w formę) CMC, który mając swoje założenia wstępne w zasadzie przekreślił z góry jakoś taką możliwość - przyjmując określony format danych i zarządzając po swojemu kanałami. Przy tym trzeba się na tym jeszcze znać i wiedzieć, jak należałoby to robić, a ja się nie znam, o czym więcej za chwilę. Natomiast CMC chyba nie jako jedyny z dostępnych na Atari operuje na 3 kanałach, bo jeśli nic nie mylę, Future Composer też sformatowany jest do 3 kanałów.

      Zdradze się, że też tak poza rozeznawaniem się w tym, co można realnie w cmc zrobić, troszkę sobie też o tym 4 kanale fantazjowałem, całkiem w sumie jeszcze niedawno.

      Bo i teraz, nie będąc w żaden sposób fachowcem od możliwości pokeya, ni żadnym jego znawcą (na pewno poniżej średniej z osób, które jakoś tam przy Atari siedzą), tak na prawdę nie mam dobrej orientacji i takiego spojrzenia całościowego tego nawet, co robi player cmc z danymi i jak je użytkuje do pokeya. To mi nie jest niezbędne w ingerowaniu w kod, bo ja robię swoją robotę w tym aspekcie na podstawie i na wzrór efektu finalnego jaki ma się zdarzyć w konkretnym kodzie i tylko to mnie interesuje, żeby to samo uzyskać w nieco bardziej efektywny sposób (rozpatrując od strony rozpoznania i zachowania logiki każdy rozdzielny fragment kodu). Bo prawdziwy twórca ma świetne rozeznanie w tym co robi, bo musi mieć, inaczej tego nie stworzy od podstaw, nie rozplanuje, aby całość miała "ręce i nogi". Musi widzieć jasno przede wszystkim cel swoich starań i dokładnie do czego dąży. To jest absolutny priorytet, więc i pewien styl pisania kodu może nawet na tym fakcie nieco cierpieć i to jest całkowicie normalne. Chodzi bardziej o niezawodność kodu, jego uniwersalność przy późniejszych możliwych modyfikacjach jego kontekstu (odniesień z innym kodem), w trakcie pisania kodu, z której być może będzie można skorzystać (choć nie zawsze, a nawet zwykle, się z tego nie korzysta w całej pełni), niż o "bawienie" się w optymalizowanie samego kodu, bo to jest cel schodzący w sprawnie posuwającej się pracy kodera, prawie na trzeci stopień ważności (gdy liczy się bardzo czas). Tak to sobie wyobrażam.

      A "poprawiacz" może sobie całe poznanie i rozeznawanie całości mocno nawet odpuścić, nie jest ono mu niezbędne. I ja z takiej możliwości jak najbardziej korzystam, bo, może jak wiadomo już niektórym, ciężko mi pamiętać wiele rzeczy, i raczej ciężko przyswajam nowe, więc tym bardziej nawet nie próbuję.

      No sorry, że tak obszernie i osobiście wyszło, ale chyba nic nie szkodzi.

      Natomiast wracając do tematu 4 kanału. Chyba nie warto na to tracić ani sił ani czasu. Popularne może być zastosowanie edytora cmc dla konfiguracji z dwoma co najmniej pokeyami. Wówczas tym bardziej staje się ważne to, by całość zbyt mocno nie komplikować (złożonym formatem danych do zarządzania), bo procesor może się tym bardziej nie wyrabiać, a i brak kanału (jednego na każdy pokey) daje się pewnie lepiej znieść twórcy muzyki. Więc taka jest moja linia rozumowania. Chociaż dodam, że przecież są i inne edytory i przecież bogactwem nich wszystkich razem jest też pewne między nimi zróżnicowanie. Każdy może potrzebować czegoś nieco innego, specyficznego, co dany edytor i player oferuje.


      @rosomak: CMC nie jest stawiany jako najdoskonalsze narzędzie do uzyskania wszystkiego, co na pokeyu można. Wręcz odrotnie. Ale był niewątpliwie często najważniejszym odniesieniem dla późniejszych edytorów (mpt), które dzięki niemu może łatwiej powstały i jakoś z niego skorzystały (skorzystaliśmy wszyscy). Jest określany jako wygodny. Ma swoją specyfikę, ponieważ chociażby działa na innych tablicach częstotliwości są inne (przesunięcie częstotliwości) niż zwykle, przez co ciężko się stroi z innymi edytorami i konwersje wychodzą z tego powodu choćby mocno odmienione w brzmieniu. Ja zresztą całej jego specyfiki nie obejmuję, by to dobrze zreferować.

      Natomiast wartość CMC jest ogromna także w tym, że powstał ogrom prac na niego, z czego bardzo wiele nie dotrwało by być do powszechnego wglądu do teraz (chociaż wciąż ma szansę niekiedy jakoś tam się jeszcze ujawnić, jeśli doszczętnie nie zginęła). Teraz wszystko, co pojawia się w dorównującym mu systematycznie popularnością RMT, ale trwało to całe lata, jest z gruntu rozprowadzane dalej i się "nie marnuje", ale to era internetu i szybkiego obiegu danych informatycznych, zupełnie inne czasy. A mi się prosto zliczyło więcej niż 1700 w plikach sap w ASMA, które mają sygnaturę "TYPE C", a ona wskazuje jednoznacznie na ich "chaosowe" pochodzenie, a nie obejmuje to zliczenie wszystkich modułów cmc (i pochodnych), bo nie zawsze się z tego korzysta (z tej sygnatury w związku z pewnym ułatwieniem w składaniu sap) i tak wszystkich modułów się na pewno nie obejmie. Czyli jest tego wszystkiego, co pochodzi z CMC (wszystkich jego odmian), między 1/4 a 1/3 do wszystkich sap w ASMA. To może być wciąż najpowszechniejszy player kiedykolwiek zastosowany na Atari, a jedynym, który może z nim konkurować w tym jest tylko RMT (i faktem jest, że czas działa tutaj na jego korzyść - więcej z nim można i jest jakby bardziej skrojony na dzisiejsze czasy).

      @Pin: Ta wersja edytora (stereo), to była dla mnie też nowość, którą objawił przede mną Mono w 2015 roku. W archiwum AOL tego nie ma (ja nie znajduję). W Atariki jest opis formatu CM2, którym się posługuje ta wersja edytora (opisane przez Mono). Chyba się nie zdołał przyjąć, ale jedna orginalna muzyczka na nim (lub na jakiejś późniejszej wersji) powstała, choć była krótka, do gry i nazywa się "Sniper", można ją znaleźć w katalogu Rastera w ASMA.
      • 19:
         
        CommentAuthorCOR/ira4
      • CommentTime27 Jun 2020 18:06
       
      Zapodaje plik CMC Stereo v1.02

      Możecie wysłać mi na maila tutorial,bądź link do takowego dla jakiejkolwiek wersji CMC ?
      • 20:
         
        CommentAuthormav
      • CommentTime27 Jun 2020 22:06
       
      Jeśli zbierasz inspiracje i pomysły to w cmc brakuje bardzo jeszcze przynajmniej dwóch moim zdaniem must have rzeczy:
      1) kolumna głośności (lub nawet kilku efektów) w tracku. Z tego co pamiętam, to aby np. ściszyc dźwięk trzeba tworzyć drugi instrument.
      2) zmiana tempa wewnątrz tracku/parteru. Obecnie można to zrobić tylko przed patternem.
      • 21: CommentAuthormarok
      • CommentTime28 Jun 2020 16:06
       
      @ Kolumna głośności (w tracku):

      Rozumiem, że zapisana w definicji patternu, którego bezpośrednio dotyczy - to rozwiązanie do CMC raczej nie przystaje.

      RMT ma to prawdopodobnie nejlepiej (wzorcowo) rozwiązane, jeśli chodzi o uzyskiwany efekt, bo są różnice w działaniu tego regulowania głośności w odniesieniu do danych z instrumentu, między oferującymi to trackerami. Wiem, że kompatybilność jest tu nie zachowana (na pewno między RMT a TMC2, które można by o to chyba posądzać, gdyż są najbardziej rozbudowane i dają podobne w teorii możliwości). To, mi się wydaje, generalnie dość złożony problem, poza trudnością związaną ze znalezieniem sposobu zapisu w danych patternu.


      Chociaż, generalna zasada polega na stworzeniu dwuwymiarowej tablicy przeliczeń głośności (16x16), gdzie z odczytu głośności naturalnej dla danego wybrzmienia (maksymalnej) mamy po wskaźniku przeliczeniowym możliwość jej korekty w dół.

      Zasadniczo są takie już wersje CMC, które mają tą tablicę głośności i jakoś z niej chcą korzystać. Natomiast jest to zrobione na uproszczonych zasadach, które się prawdopodobnie nie okazują wystarczające, by z nich korzystać.

      Wersja CMC Rzóga ma tą tablicę oraz wersje Datriego (dla modułów CMS i CM2).

      Wydaje mi się, że jest tak:
      Wersja Rzóga efektywnie korzysta z niej na rządanie z edytora (poza komendami w module, których najwyraźniej specjalnych do tego nie zapewnia) i działa to na wszystkich kanałach, czyli też instrumentach, równocześnie.

      Wersje Datriego: sterowanie z komendy w module (z linii song), działa to wtedy na wszystkich instrumentach (dźwiękach/ notach) na danym kanale.


      Gdyby chodziło o rozwiązanie jakoś może cząstkowe, tak jak choćby dynamiczne wyciszanie całego kanału, to to by się dało zrobić łatwiej z linii song nawet, ale dla pojedynczych wybieranych dźwięków jest to w mojej ocenie zbyt złożony problem.

      Bo CMC ma szansę być jeszcze w mierę sprawnym playerem, choć ograniczającym swoje wymagania co do pamięci (zwłaszcza na stronie zerowej).


      @ Zmiana tempa:

      Zmiany tempa całkowicie dowolne czy dające się jednak zamknąć w jakiejś cyklicznej regule? To ważne, bo być może, gdyby była potrzeba tylko tego drugiego, to także z pozycji linii song można by takim zmiennym tempem sterować.

      Dlatego pytam, do czego konkretnie taka zmiana tempa byłaby niezbędna, w jakich sytuacjach?

      Jeśli chodzi o (jedną na pattern) zmianę tempa w połączeniu ze skróceniem przy okazji długości odgrywanego patternu (lub bez tego, od jakiejś konkretnej pozycji w patternie), to może też w teorii takie rozwiązanie jest możliwe do uzyskania z linni song.

      Uprawiam tu czystą teoretykę, więc być może jestem nazbyt optymistyczny w przewidywaniach, ale chciałbym po prostu poznać potencjalne zapotrzebowanie na coś konkretnego, bardziej w szczegółach. Stąd pozwalam sobie na te nieco szalone dywagacje.
      • 22: CommentAuthormarok
      • CommentTime5 Jul 2020 09:07
       
      Wpadłem teraz na to, że to może jednak niezły moment na ponowne odświeżenie tego tematu i w związku z tym mały upload nowszej wersji (w miejsce starej, pod pierwszym wpisem). (Orócz tego chciałem dla siebie akurat "uwiecznić" konkretną postać playera, choć on dał mi się jeszcze trochę potem poprawić, więc kolejna wersja wydaje się z tego względu nieunikniona.)
      Choć służyć ten wpis ma również próbie mojej komunikacji i wydobyciu informacji o własnym doświadczeniu z CMC (jeśli ktoś takowe posiada).

      Celem tego, co czynię, jest to, że mam zamiar doprowadzić do możliwie przyzwoitej formy podstwową wersję CMC, która będzie mogła zastąpić "dokumentnie" poprzednią swoją inkarnację (zamieszczoną w archiwum AOL), bo tamta mnie nie cieszy jako praca tym zaszczytem wyróżniona, a być może służyć jako alternatywa dla każdej innej wersji, jeśli zajdzie potrzeba użycia komuś CMC (na co bym liczył).

      Oprócz niej, chciałbym jeszcze pokusić się o wersję rozszerzoną, która będzie już operować na nieco rozbudowanym formacie danych. I to jest osobny trochę temat.

      Pomyślałem, że zrobię w miarę dokładny przegląd wszelkich wersji CMC i zbiorę informacje szczegółowe tego, co one tam w sobie mają z rzeczy dodatkowych, bo przyznaję, słabo to wiedziałem.

      Niemniej, na plan pierwszy wysuwają się dwie nakładki - ta od SDX i ta od "+", czyli rozszerzenie o doczyt i zapis zestawu instrumentów. Nakładki w swej oryginalnej postaci nachodza wzajemnie na siebie, ale to nie jest problem, bo rekompilacja jest metodą, którą mogę zastosować.

      Chodzi mi w tym wpisie o funkcjonalność nakładki do doczytu instrumentów, bo dla mnie jest to obszar nierozpoznany, wszak wydaje mi się, że można by jej działanie trochę zmodyfikować na bardziej użyteczną, jeśli w ogóle się komuś sprawdziła i się realnie przydawała w przeszłości, bo to też jest spora dla mnie niewiadoma i być może nie warto jej w pracach uwzględniać.

      Dla mnie ta funkcja działa nie do końca ok. Bo ładuje instrumenty w ustalone na sztywno sloty i jeśli chce się doczytać taki swój zestaw instrumentów na już mocniej zaawansowaną pracę nad muzyczką (choćby po prostu sprawdzić tylko brzmienie innych instrumentów w miejsce starych), to dochodzi do niekontrolowanego nadpisywania instrumentów. To powoduje, że do tej czynności w takich realiach trzeba podejść wyjątkowo ostrożnie, tzn. chyba przygotować sobie osobno zestaw instrumentów pod ten konkrenty odczyt (pod tą wersję modułu, do którego zamierzamy się doczytać). Więc trzeba i uważać i może to być żmudne, by zapewnić sobie uniknięcie niechcianych nadpisań.

      Postulowałbym doczyt każdego instrumentu z zestawu, jeśli zachodziłby konflikt slotu (docelowy numer instrumentu zajęty) w wolne miejsce.

      Poza tym, jak wynika z głosu czytelnika TA w następnym numerze po opublikowaniu tej nakładki (6/7'93), kopiowanie instrumentów między slotami jest funkcjonalnie zbędne, ponieważ CMC daje taką możliwość od ręki. (Więc raczej można by z tej fukcji w łatce zrezygnować.)

      Oprócz tego, mam zgłaszany przy odczycie instrumentów w zestawie komunikat o błędzie, mimo że dochodzi do pełnego odczytu danych. Jest to komunikowane błędem "003", ale to wskutek zapewne uproszczonej składni listowania numeracji błędu. Nie jest to przeze mnie rozpoznane, z czego wynika to zgłoszenie. Pod SDX załadowanie przebiega bez tego komunikatu.

      Co do nakładki SDX to mam i tu swoją wątpliwość. Przyznam, że nie rozumiem i z tego powodu mam obawę, czy pozostawienie niektórych odwołań w kodzie CMC bezpośrednio przez wektor $E456 a nie pośrednio przez kod tej nakładki, nie przyniesie w jakiś sytuacjach błędów komunikacji i konfliktu pod SDX, czego nie spostrzegam w środowisku emulatora, a co może wyjść dopiero natywnie. Po prostu tego nie rozumiem, dlaczego część odwołań przez ten wektor pozostało bez zmian w kodzie. Czy to nie jest niedopatrzenie? (Tak samo dotyczy to tej drugiej nakładki, która mogłaby teoretycznie korzystać z kodu nakładki SDX przy swoich odwołaniach przez ten wektor. Póki co, wydaje się to zbędne z SDX, bo pod emulatorem mi działa, ale czy zawsze będzie?)

      Z rozszerzeń, jakie są, pewnie przydałaby się także oferta directory dla dysku.

      Obecna wersja, którą zamieszczam, ma obie nakładki - SDX i "+". Tą drugą umieściłem trochę byle jak, bo od $B000 (jak wiadomo dość powszechnie, w CMC od $8400 znajduje się bufor dla modułu).
      Można nagrywać, relokując według swoich potrzeb, player wprost z CMC, jako plik REP. Powinien zawsze mieć jednakową postać, ponieważ dane, które podlegają zmianie w trakcie odtwarzania, z założenia są przywracane do stanu wyjściowego (więc jest to równoważne kompilowaniu ze źródła, a może być niekiedy wygodniejsze).

      Kod relokujący adresy w playerze (niezbędne do działania) jest stary (pochodzi wprost z wersji z 2015) i nie został w żaden sposób poprawiony, a czego nie zdołałem uczynić (bo pewnie mógł zostać).

      Zwróciłbym uwagę, że ten player do CMC porównywalnie jest już w miarę szybki. Wydaje mi się, że jest szybszy od RMT i na podobnym poziomie co MTP (Jaskiera), choć nie mam na to żadnych twardych danych (poza porównywaniem "Lasermania_2020.rmt" z "Lasermania.cmc" i orientacją w wynikach dla różnych muzyczek mpt).

      Przy okazji, jeśli ktoś dysponuje legendarnym konwerterem Caspera z cmc do mpt, chętnie bym ten programik przyjął. Przypuszczam (tak słyszałem), że wersja, jaka jest, wymaga wycinania muzyczki po konwersji z pamięci (nie ma opcji save), ale to zupełnie nie problem. Chciałbym mieć ten program do porównań playerów.
      • 23:
         
        CommentAuthorjhusak
      • CommentTime5 Jul 2020 17:07
       
      @marok, super, że się tym zajmujesz:) Jeśli tego nie zrobiłeś, to proponowałbym przelecieć CMC programikiem DIS6502. Powstałe źródła skomentować, umieścić na githubie i dopiero wtedy zaczynać robotę. Być może zyskałbyś pomocników, a o wiele łatwiej byłoby dyskutować mając źródła w zanadrzu.

      Oczywiście wchodzi w grę kwestia, czy ów program może być disassemblowany, przetwarzany, etc. Tego nie wiem.
      • 24: CommentAuthormarok
      • CommentTime5 Jul 2020 19:07
       
      @jhusak: Dzięki, miło mi czytać podobne słowa "otuchy" (zwłaszcza, pardon, że masz swoją ugruntowaną renomę i długą listę zasług twórczych).

      Co do Twojej sugestii, to jeśli masz na myśli DIS6502 od TeBe'go, to właśnie tak, nim się posłużyłem. Są jeszcze inne podobne narzędzia (pewnie nie mniej dobre), a może świeższe wersje tego, ale mam którąś (już od dawna tą samą) wersję tego programu i czasem mi się właśnie przydaje.
      (Kilka razy publicznie TeBe'mu już za to narzędzie też już zdążyłem zasłużenie podziękować.)

      Niestety, komentarze, a zwłaszcza już samo etykietowanie źródła, tak by to jakoś wyglądało (cywilizowanie), to zadanie trochę ponad moje możliwości. (Także prowadzenie jakiegoś projektu na tej "witrynie", o której napisałeś. Nie czuję się.)

      W 2015 roku wgryzłem się trochę w kod edytora i na pewno skorzystałem już z tego w tej "edycji" (także dzięki na tyle sugestywnym etykietom, że się to okazało przydatne, z zastrzeżeniem, że jednak samego siebie łatwiej oczywiście zrozumieć - wszelkie swoje meandry i ograniczenia słownikowe). Natomiast obecnie, póki co, skupiłem się na samym rdzeniu, czyli playerze i wiedza o bebechach edytora jest mi w tym momencie dość odległa. (Nie wypominając sobie, że łatwo wszystko zapominam.)

      Co do samego projektu, nie aspiruję do gruntownych poprawek w edytorze. Chciałem tylko mocno ruszyć player, bo jest zbyt wolny, jak się twierdzi. A kiedyś chodziło mi o to, że trochę za długi (i z pewnymi istotnymi błędami, o których było już dłużej - od Jaskiera - wiadomo). Było to też robione w nawiązaniu do edytora modułów CMS, gdzie sytuacja była podobna, a poza tym szczególnie Poison robił (i szczęśliwie jeszcze tego nie zaniechał) dużo na niego muzyczek. Więc była tego rodzaju motywacja, że może nawet się to przyda w praktyce twórczej rzeczywiście komuś. Ale tamta wersja, którą wówczas ukończyłem, była stanowczo niewystarczająca pod względem wyrabiania się playera w czasie (i teraz dopiero widzę, że potrafi ona zwalić synchronizację antica). Okazało się to dla mnie tak na prawdę dopiero niedawno (pomierzyłem czasy) i tak sprowokowało do powrotu do tego, by się z tym ponownie zmierzyć.

      Widzę teraz, że jest możliwość zrobienia playera (gorzej to widzę dla siebie z samym edytorem) pod nawet quadro pokey, całkiem rzeczowy, ale jednak wciąż "tylko" CMC-owy w swej istocie, co oczywiście nie będzie satysfakcjonujące dla wielu twórców. Mam tego świadomość, co mnie nie powstrzymuje, bo wybór tego, czym się postanowiłem zająć, dostosowałem do swoich trochę bardziej ograniczonych przecież możliwości (porównując z niektórymi innymi osobami, także stąd), a one powinny wyznaczać cele, jakie sensowne jest mi podejmować. Mam nadzieję, że nie mierzę tym samym za wysoko.
      • 25: CommentAuthormarok
      • CommentTime21 Aug 2020 23:08 zmieniony
       
      Drobnostka, którą się (nieskromnie) podzielę.

      Introdukcja.
      Format CMC ma kilka 'okienek' do wypełnienia. Z mojej strony na to patrząc, fajnie by było je jakoś sensownie wypełnić. Jedną z nich jest starszy nibble bajtu 8 definicji obwiedni. Jest on zawsze zerem i do niczego nie jest używany.

      Z kolei ktoś mi uświadomił w ostatnich dniach przy okazji innych "rozmów" (notabene, prawie ich nie prowadzę, ale jakoś się tak przydarzyło), że taki problem jak brak loop'a w definicji obwiedni instrumentu bywa niekiedy niedogodnością.


      W niezgrabny może trochę sposób, ale zdołałem dorobić w kodzie do playera cmc obsługę loop'a, o jakim tu piszę, i spreparować pewnie trochę "na odwal" taki prosty sap do muzyczki "Lasermania" z jednym instrumentem, któremu założyłem takiego loop'a, w sposób tu opisany (dokładnie jest to tylko jedna zmiana bajtu na cały moduł).

      Dlatego efekt nie ma zachwycać (trudno żeby miał tak, czy inaczej), ale jest tylko taką próbką tego, jak to działa i że działa (dobrze by było aby też prowokacją do refleksji nad sensownością takiego dodatku, z którą chciano by się tu ze mną podzielić). W sumie to nie jestem przekonany, że to dobry pomysł, patrząc zwłaszcza przez pryzmat kosztów, bo jednakowoż to zawsze jakieś nowe, dodatkowe obciążenie dla playera, który ma być - primo - (względnie) szybki i udźwignąć obsługę przez stereo po quadro, pokey.

      W zasadzie interesują mnie więc tylko najlepsze pomysły i rozwiązania (dobrze więc pasujące do tego, co jest 'na starcie' i tylko rzeczywiście praktyczne), które jakoś się dadzą zaadoptować w sposób 'małokosztowy' do kodu playera.


      Jestem przy głosie, to dopowiem ogólnie jeszcze w temacie, choć to nikogo raczej nie zainteresuje ale tak dla porządku rzeczy, że miałem sporo ponad miesięczną przerwę nad wszelkimi działaniami nad playerem, bo się trochę koncepcyjnie nie wygramoliłem z pewnych wątpliwości odnośnie formatu danych. No, nie miałem dość w sobie sił i chęci by to przezwyciężyć, a że przynależę zdecydowanie do "żółwi" (w sprawności, rzecz trzeba przyznać, intelektualnej i działaniu), to tym bardziej nic się nie posunąłem.

      Co do tej zmiany (brzmienia), w którym momencie można ją usłyszeć, to w pierwszej muzyczce, jakoś przed 20 sekundą jej odtwarzania (i w różnych późniejszych fragmentach też jeszcze, choć ogólnie nie za często).


      Jeszcze tutaj podmiana tego pliku sap, bo doszło do omyłki w kodzie. Jeden dźwięk (zaraz przy pierwszym "nawrocie"), który miał grać, był pomijany i wypadał z sekwencji (przez co instrument nabierał takiej trochę formy, że kojarzył mi się może przez to dlatego podświadomie, bardziej niż już teraz, z jakimś 'dj style'). Być może, co bardziej czułe ucho, odbierało jakąś dysharmonię z samego tego już faktu, a to mogłoby rzutować, wyobrażam sobie, na ocenę w ogóle przydatności tej fukcji niezasłużenie wobec jej kanonicznej postaci (działającej bez niedociągnięcia).
      • 26:
         
        CommentAuthorsun
      • CommentTime24 Aug 2020 22:08
       
      Przesłuchałem. Czy to będzie tak działać, że będzie też możliwe wyciszanie w loopie? Nie wiem czy się precyzyjnie wyraziłem :(
      • 27: CommentAuthormarok
      • CommentTime27 Aug 2020 16:08 zmieniony
       
      Przyznam, że to celne zapytanie. :)

      (I że do dzisiaj je przegapiłem.)

      Samemu się nad tym zastanawiałem, czy brak wyciszenia kiedy jest zapętlenie (bo zauważam iż cieżko jest je uruchomić z dedykowanej zmiennej gdy się pozostaje na obwiedni z obsługą instrumentu - nie bardzo mi pasuje do tego kod playera, w szczególności by się to opłacało 'globalnie', jeśli chodzi o czas obsługi z tym, jak bym sobie mógł to wyobrażać, do tego co jest teraz - bez tego), nie jest za poważnym ograniczeniem (dla sensowności utrzymywania w propozycji tej funkcji) i jak to ewentualnie rozwiązać inaczej, by wyciszanie dźwięku od takiego instrumentu może jednak było możliwe.

      Co do sensowności, być może jest ona (funkcja loop'a w instrumencie) przez to ograniczenie istotnie uboższa, ale czy przez nie sensowności zupełnie pozbawiona, to nie wiem (mam nadzieję, że nie).


      Myślę, że w porywach można pomyśleć nad jeszcze innym rozwiązaniem, umożliwiającym wyciszanie dźwięku instrumentu (także od tego w pętli), ale że będzie to robione poza zwykłą obsługą instumentu, czyli że może jednak osobna, dedykowana ścieżka volume (z wykorzystaniem tablicy, o czym pisaliśmy tu wcześniej) dla każdego kanału z osobna. To by przy okazji dawało dużo większe możliwości korekcji głośności na wszystkich dźwiękach, ale oczywiście ma to swój duży stopień trudności implementacyjnej i nosi ze sobą sporą zawiłość dla kształtu poszerzonego, docelowego formatu modułu, którym to problemom zapewne mogę nie sprostać.

      Wtedy koszt czasowy można (chętniej) ponieść, a będzie on, mam nadzieję, warunkowany faktem realnego korzystania z tej dodatkowej funkcji i nie większym niż robiąc to drogą przez obsługę od (chociaż przewidzianej do tego) danej instrumentu (którą także oceniam za trudną i równie kosztowną czasowo).

      Dzięki jednak za zwrócenie na to uwagi. Może jeszcze się tym bardziej uważnie przyjrzę, czy uda mi się w kodzie playera znaleźć sposobność skorzystania z dedykowanej drogi korekcji głośności instrumentu w pętli (od zmiennej). To byłaby droga faktycznie naturalna i pożądana.


      Przy okazji, zmieniam plik na trochę nowszą wersję (wcześniej nie było specjalnie okazji), w kierunku docelowego kodu tej obsługi pętli w loop instrumentu, jak to przynajmniej widzę. Bo przyznam, że już z tej implementacji do kodu tej funkcji, jestem całkiem kontent i mam dużo mniejszy opór z powodu potencjalnego jej zbytniego niedopasowania do reszty.


      ***
      pewna errata do tego co wyżej

      utrzymam to w krótkiej formie

      o najważniejszym nie napisałem (wyleciało)

      obwiednia nie jest płaska, więc tłumienie dźwięku nie może być realizowane na drodze 'odcinania głośności po jednym oczku', ale w proporcji do wyjściowej głośności na powtarzanej pozycji obwiedni (aby możliwie zachować kształt obwiedni, choć zarazem ją spłaszczać)

      to jest "wypisz wymaluj" właśnie to, co robi tablica głośności

      z pozycji obsługi instrumentu trzeba by więc także nią się posługiwać

      a jeśli już bez tego nie możemy się obejść, może już prostsze będzie i uniwersalne zarazem posłużyć się osobną kolumną do tego powołaną (nawet szerzej, bo do pełnej regulacji głośności - w dół, ale i w górę, z dowolną dynamiką i synchronizacją w czasie)
      • 28:
         
        CommentAuthorsun
      • CommentTime27 Aug 2020 22:08
       
      @jhusak: jak nie "ten" program, to taki "nowy" co czyta i zapisuje ten sam format, który jak tu widzimy jednak nie będzie tym samym, bo będą wykorzystane "puste" miejsca.
      Mnie natomiast ciekawi jak powstały wersje Datri/Datri czy jak mu tam, oraz rodzime wersje stereo itp. "Widelcem" dodziurkowane karty do czytnika, deasemblacja, czy raczej "kod indżekszyn"? :)
      Jakby nie patrzeć, można rzec, że kontrowersyjne, a z drugiej strony inżynieria wsteczna w pewnych obszarach/zastosowaniach jest dopuszczalna i legalna.