Oznámení

Sbalit
Aktuálně žádná oznámení.

Assembler - všeobecná logika

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    ....tak a teď si konečně můžu s programátorma, co mají hudební rutinu s CIA časováním porovnávat pinďoura na kolik kdo má nastavený časovač CIA.

    Amiga - PMD 85

    Komentovat


      Tak vypisování a mazání textu za mně již svižné. Tím že hraju skladbu rychlostí 5 jsem si odrovnal funkci volume slide, protože u ní dělím číslem 4 pomocí rotace bitů a po technické stránce je tedy volume slide přístupné pouze pro hraní skladby s rychlostí násobku čísla 4, ale asi vím o úpravě a možná hodně jednoduché, jak tenhle efekt zpřístupnit i pro ostatní rychlosti třeba i 5. Teď jsem dělal hlavně to svižnější mazání textů a i drobnou optimalizaci kódu.

      Teď jsem přemýšlel co s tím občasným "zakopáváním" ve zvuku. Já vím, jak bych to spravil, zvýšil bych vnitřně rychlost hraní rutiny. To bych již šel do násobku té současné rychlosti, aby jsem se dostal i na rychlosti se kterými pracuje i klasický formát MOD. A dokonce by ta úprava ani nebyla nějak složitá, ale asi se mi to nechce dělat z důvodu, že s tím nemám nějaký problém. Mně to tam vždy spíše pobaví a tak asi napíšu v textu že jsem si toho vědom a hudební rutinu nechávám i tak na nižší frekvenci.

      Chvíli jsem se bavil na tom, jestli se zeptám na názor hudebníka, ale pak jsem si uvědomil, že již o něm vím, že má efekt zakopnutí ve skladbě rád, i když jeho efekt je řízený a je na stejném místě ve skladbě a ten můj náhodný, ale ano, když si řekne ať to odstraním, odstraním to, ale předpokládám že s tím nebude mít asi taky problém 🙂

      Již se nějakou dobu těším ještě na 1 režim zobrazování textu a myslím, že je již na to hudební rutina celkem předchystaná, jen řeším standardně věci se kterými jsem nepočítal 🙂

      Samozřejmě efekt zakopnutí kickbasu ve zvuku se projeví pouze, pokud píšu text v režimu více písmen naráz. Je to jednoduše již moc cyklů kým program pustím dál. Tam by pomohlo zvýšení frekvence pracování samotného programu, jak jsem již psal, protože moment ve kterém se samply hrají by byl přesnější.

      Hlavní časovač v hudební rutině CIA mám na hodnotě 2f56 hexa 🙂

      ​​​​​​​Čím větší je tahle hodnota tím rychlejší je hudební rutina, protože zaplňujete pomocí CIA čas, a každý čas, co se takhle musí zaplnit je čas v kódu který se dá využít i jinak 🙂
      ​​​
      Amiga - PMD 85

      Komentovat


        Prioritní je teď pro mně vědět na jaké rychlosti se bude hrát druhá krátká melodie. Když ji budu znát a bude to situace umožňovat, budu moci třeba zvýšit pracovní frekvencí programu i se současným časovačem v rozsahu 5 bitů, kde se současná skladba hraje pouze na rychlosti 4 (0-31). Proto jsem dělal ty manévry s rychlostmi... .
        Amiga - PMD 85

        Komentovat


          Ještě taková úvaha k mým předešlým 2 dnešním příspěvkům. Co jsem si všiml, efekt zakopnutí kickbasu se neprojevuje při mazání textu kde používám relativně stejnou logiku jako při psaní více písmen v jeden moment až na jednu výjimku. Mezeru jako jediný znak neindexuji. Tedy v programu nehledám pozici znaku mezera, já ji přímo zadávám. To značně urychluje celý kód. Kdyby jsem tedy nemusel znak indexovat, zkrátil bych hodně vykonávání psaní více písmen v jeden moment a dle všeho bych předešel efektu zakopnutí. Tedy bych měl 40 byte s pozicí písmen a pak 40 byte textu. Při psaní písmene bych si jen pro jeho pozici "hrabnul" o 40 byte níže, co by nějaké zdržení bylo, ale snad menší jako hledat písmeno na vzdálenější pozici. Samozřejmě jsou k téhle logice další různé varianty.

          To nic nemění na tom že se mi to zakopnutí líbí. To mně jen tak napadají týhle věci 🙂
          Amiga - PMD 85

          Komentovat


            Tak asi mám "zakopnutí" ve zvuku odstraněno. Doplnil jsem celkovou logiku o stav, kdy když je mezera v textu, opustím dělání smyčky pro psaní textu v jeden moment, nechám udělal celou smyčku v programu čím si i zpracují hrající se sample. Problém ale nastal, když jsem měl v řádku pouze 2 slova, za kterými bylo hodně mezer a tedy se často opouštěl režim psaní více znaků v jeden moment. Standardně více řešení já si vybral takovou falešnou mezeru, kdy když v programu do textu napíšu podtržítko, na obrazovce se zobrazí mezera. Tím program donutím neopustit režim psaní písmen v jeden moment a dokáží v něm napsat i mezeru. Fungovalo mi to napoprvé. Samozřejmě hned jsem udělal to, že jsem všude místo mezer dal podtržítko a vždy přibližně v půlce nechal mezeru aby si program udělal celou programovou smyčku a tedy i zpracoval hrající sample. Teď si tedy můžu určit kdy se při vypisování textu na obrazovku udělá celá programová smyčka. Zatím to dělám na 2 krát, můžu to i více rozkouskovat. Text je vypisován hodně svižně a vypadá to celkem v pohodě. Alespoň dle mně.

            Samozřejmě mám obavy, že když to zakopnutí ve zvuku nebude neřízené, že bude alespoň řízené.

            Budu dál testovat...

            Amiga - PMD 85

            Komentovat


              Jo a podtržítko mám v rámci hledání znaku v seznamu úplně na konci, tedy jsem z "falešné" mezery udělal hned po klasické mezeře kterou indexuji napřímo druhý nejrychleji se zpracovaný znak, protože vyhledávání znaku se provádí v seznamu od konce

              Dneska jsem nějakej ukecanej.

              Amiga - PMD 85

              Komentovat


                Zatím jsem na mém žihadlu A1200 s 4MB Fast RAM nespozoroval žádné zakopnutí ve zvuku.

                Já už mlčím, už mlčím...

                Amiga - PMD 85

                Komentovat

                Zpracovávám...
                X