Oznámení

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

Ghh

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

    Není nutnost, aby ten podprogram běžel ve vlastním tasku? Pokud to nutnost není, jaké jsou výhody, když ve vlastním tasku podprogram běží?
    Amiga - PMD 85

    Komentovat


      Autorem citovaného textu je ghh Přejít na původní příspěvek
      Lama programuje

      Amiga je boží!
      lama teda rozhodně nejsi
      yes brekekes

      Komentovat


        Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
        Pokud to nutnost není, jaké jsou výhody, když ve vlastním tasku podprogram běží?
        Má to výhodu tu, že hlavní menu daného programu stále reaguje i když zrovna zpracováváš nějaký subtask. Je to více multitaskové (systémové) . Prostě načteš obrázek a přidělíš mu subtask, daný subtask může vykonávat různé úkony s obrázkem, aniž by ovlivnil hlavní program. Samozřejmě subtask(ů) může být vícero a jsou na sobé nezávislý, hlavní program dostane pouze echo, zda daná činnost je jjiž hotova.... prostě správná cesta. A GHH je borec

        Minimig 4MB/ARM ; FPGA Arcade ; Amiga 500 ; Amiga 2000 ; Amiga 1200 ; AOS 4.1 FE -> WinUAE

        Komentovat


          Lisiak4: Jo jo jak píše bigmac. Chtěl jsem něco dodat, ale napsal to úplně přesně.
          Chybí mi nějaký to "vzdělání", jako např. ze školy. Spoustu věcí vůbec netuším jak se dělají, tak to musim lepit podle příkladů a dokumentace. Na věc jdu většinou "hrubou silou", přitom mi to nějak secvakne a pak už jenom ladim, ladim, ladim.... Prostě lama přístup
          Amiga DraCo DaMi PegasosII G4 G5

          Komentovat


            Mně o Tebou popsaném postupu programování něco povídej...
            Amiga - PMD 85

            Komentovat


              Konečně se mi podařilo zvládnout i třídu "Process.mui" o které byla řeč výše. Nedokázal jsem na to zapomenout... Totiž původní (a jedinný) příklad co mám je tak trochu matoucí. Tlačítko Stop jenom ohlásí že bylo zmáčknuto a ne že zastaví subtask, přitom ve zdrojáku je i hláška "Stopped", ale to se mi nikdy nezobrazilo (i v orig C verzi).
              Vyměnil jsem původní funkci (zobrazování textu) za přehrávání zvuku aby bylo jasnější co se v subtasku právě děje. Funkce 4x přehraje jeden sampl a skončí. Našel jsem způsob jak subtask zastavit, ale jenom tak že sampl nejdřív dohraje do konce a teprve pak se zastaví subtask.... Eh několik hodin jsem si opět myslel že to asi neni možný, ale pak jsem si všimnul, když program ukončim zavřením okna, zvuk se zastaví okamžitě. Tady jsem měl začnout Nakonec se mi podařilo zvuk-subtask zastavit tlačítkem kdy chci a napsat si několik verzí použití této třídy. Ve verzi bez Process.mui je poslání signálu asi na 10 řádků a tady jen jeden atd.
              Zatim se mi nepodařilo zvuk "pauznout" a pak pokračovat, ale vono to půjde
              Amiga DraCo DaMi PegasosII G4 G5

              Komentovat


                Pokud se jedná o pauznuti 1 samplu tak aby pak pokračoval, tak to není zrovna si myslím standardní věc. Mám za to že playere pauzu skladby řeší tak, že se doposud hrané sample stopnou a jak dáš pokračovat v hraní skladby jednoduše se hrajou již nové noty, třeba stejného samplu, to je již jiná a to je v pohodě. Pokud chceš samozřejmě nějaké detaily, rozepišu se více.
                Amiga - PMD 85

                Komentovat


                  Asi si na to zavření tasku použil ukončení DMA přenosu, aby to nečekalo na dohrání samplu. Tím že stopneš DMA, přestanou se hrát sample a zavře se task, tedy mne napadá jen tenhle postup z toho co znám. Třeba to děláš jinak.
                  Amiga - PMD 85

                  Komentovat


                    Samply přehrávám pomocí datatypů, je na to parametr STM_PLAY a ještě STM_PAUSE a STM_STOP, ale tyhle dva mi nefungujou. Zvuk zastavím odebráním objektu (DisposeDTObject).
                    Problém je právě v tom že já nevim jak to řeší ostatní playery. Samozřejmě to nějak jít musí, ale nemám žádnej příklad nebo tak něco
                    Pauza bude asi složitější, napadlo mě sampl zastavit, uložit si pozici kde byl zastaven, pak ho přehrát "nanovo" od téhle pozice. Jenže zatim nevim jak zjistit tu pozici
                    Amiga DraCo DaMi PegasosII G4 G5

                    Komentovat


                      Autorem citovaného textu je ghh Přejít na původní příspěvek
                      Samply přehrávám pomocí datatypů, je na to parametr STM_PLAY a ještě STM_PAUSE a STM_STOP, ale tyhle dva mi nefungujou. Zvuk zastavím odebráním objektu (DisposeDTObject).
                      Problém je právě v tom že já nevim jak to řeší ostatní playery. Samozřejmě to nějak jít musí, ale nemám žádnej příklad nebo tak něco
                      Pauza bude asi složitější, napadlo mě sampl zastavit, uložit si pozici kde byl zastaven, pak ho přehrát "nanovo" od téhle pozice. Jenže zatim nevim jak zjistit tu pozici
                      Čipset nedává možnost číst, z jaké adresy DMA kanály pro audio právě čtou (přečetly) data. Pauza se dá udělat jen tak, že se zruší DMA pro daný kanál. A pokud se má navázat tam, kde se skončilo, budeš si muset adresu sám spočítat. Tedy zapamatovat si čas, kdy jsi sampl začal hrát a kdy jsi hraní ukončil. Čas (v sekundách) vynásob vzorkovací přehrávací frekvencí a budeš mít (přibližně) číslo bajtu, od kterého zase začít (tu zaokrouhli na násobky dvou, protože adresa startu DMA musí být pochopitelně sudá).
                      P.S.: Pokud to budeš chtít mít přesné, tak musíš použít přesné hodiny (např. TOD hodnoty v CIAB čipu). Pokud ti o velkou přesnost nejde, tak asi bude stačit jen počítat frejmy (myslím, že jsou v TOD hodnotách CIAA). V CIAA/CIAB jsou ale jen čítače, takže je musíš převést na reálný čas (opět vynásobit jejich frekvencí). Určitě k tomu budou i nějaké funkce v OS, ale ty neznám.
                      Naposledy upravil Defor; 02.11.2021, 21:00:00.

                      Komentovat


                        To s tim časem mě nenapadlo, to je dobrej směr. Ještě že jsi mě na to upozornil, bych se snažil o něco nemožnýho
                        Nedělám žádnej player, je to jen test a kyž už mi to hrálo tak jsem zkoušel co to všechno dovede. Teď jsem se dočetl že podporován je poze parametr STM_PLAY, tak proto mi ty ostatní nefungujou.
                        BTW: odkud máš své znalosti (právě ty který já nemám), doporuč nějakou literaturu.
                        Amiga DraCo DaMi PegasosII G4 G5

                        Komentovat


                          Autorem citovaného textu je ghh Přejít na původní příspěvek
                          ...doporuč nějakou literaturu.
                          http://amigadev.elowar.com/
                          Je tam "Amiga Hardware Reference Manual", kde Commodore vše dobře popsal.
                          Na zbytek asi jen EAB forum (hlavně sekce "Coders.Asm/Hardware"), kde se toho dá hodně najít. Bohužel je tam třeba hodně hledat a hodně pročítat. Skvělé je vlákno "Undocumented Amiga hardware stuff", kde se diskutuje o chybách v dokumentaci a chybách v čipsetu. Samozřejmě pokud tě víc zajímá programování za použití AmigaOS, tak i k tomu je tam sekce. Jsou tam velmi ochotní lidé, kteří s tebou proberou reálné problémy. Ale musíš je srozumitelně vysvětlit a být konkrétní. S dotazy typu "Jak udělám na Amize hru" ti tam asi nikdo pomáhat nebude
                          V AmigaOS se ale tak nevyznám. Jen to, co si tak matně vybavuju z druhé poloviny devadesátých let, když jsem měl Amigu a něco jsem si v OS programoval (OS3.1). A už vůbec se nevyznám na Amize v jiných jazycích než v assembleru a C (takové ty Amosy a Blitzy mne minuly). Takže v tom neporadím
                          Naposledy upravil Defor; 02.11.2021, 20:21:08.

                          Komentovat


                            Je třeba počítat s tím, že hodně samplů má to nejdůležitější ze zvuku na začátku, ne všechny ale hodně. Tedy pokud takový sampl budeš chtít hrát v jeho třeba 20 procentech původní délky (velikosti) tak to i tak nevydá žádný kloudný tón původního samplu.

                            edit: obával bych se spíše nežádoucích ruchů ve zvuku.

                            Vědět kde se nacházíš v hraní samplu je důležité pro ukončení hrani samplu ve skladbě/v efektu, jinak se ti v skladbě zahraje i něco jiného, co do samplu nepatří, nebo se ti začne hrát sampl od začátku.
                            Naposledy upravil Lisiak4; 02.11.2021, 20:56:16.
                            Amiga - PMD 85

                            Komentovat


                              Tedy...

                              pokud by se měl zahrát sampl správně mimo jeho začátek, co je klasika. Tak by měl být správně postup si myslím následující:

                              -sampl stopneš -zapamatovat si pozici kde si stopl sampl.
                              -když budeš chtít pokračovat v hraní samplu sampl zahraješ od začátku s nulovou hlasitostí
                              -hlasitost vrátíš na původní v momentě zapamatované pozice kde si před tím stopl sampl

                              Ano bude chvíli ticho, již zahraná část samplu se bude hrát s hlasitostí na nule. Ale při návratu na původní hlasitost by v samplu po zvukové stránce nemělo nic chybět, co není případ stavu, kdy začneš hrát sampl někde uprostřed aniž bys zahrál začátek jeho sinusového průběhu.

                              Tohle vše řeší player, který v rámci hraní 1 samplu zahraje z patternu i několik řádků a sampl pořád hraje. A v rámci těch několika řádku patternu máš dalších několik cyklů samotné rutiny. Tedy sampl stopneš kdykoliv v takové rychlosti, že chtít zahrát jeho pokračování za dané situace nemá z mého pohledu moc smysl

                              edit: to co jsem zde teď napsal navazuje na to co jsem psal o tom, že hodně samplů má po zvukové stránce to podstatné na jeho začátku. Tedy v některých případech by zde uvedený postup nemusel být použit. Například u samplů s relativně rovnoměrným sinusovým průběhem.
                              Naposledy upravil Lisiak4; 02.11.2021, 22:09:06.
                              Amiga - PMD 85

                              Komentovat


                                Trimonitor
                                Včera jsem si pěkně pohrál s DraCo. Přidal jsem ještě jednu grafickou kartu (Cvision64/3D vlevo), Workbench naběhne na první kartě (Altais vpravo) a na druhym monitoru je bootlogo.
                                Tady je MonumentDesignerMS (vlevo) a Movieshop, úplně vpravo je video výstup z DraComotion. MonumentDesignerMS je přímo dělanej aby spolupracoval s MovieShopem, umí nahrát frejmy z MovieShopu a použít je jako pozadí atd. Celý to funguje perfektně.

                                Klikni pro plné zobrazení obrázku

Jméno: dracotrimonitor.jpg
Počet zobrazení: 75
Velikost: 114,1 KB
ID: 154172
                                Amiga DraCo DaMi PegasosII G4 G5

                                Komentovat

                                Zpracovávám...
                                X