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ěží?
Oznámení
Sbalit
Aktuálně žádná oznámení.
Ghh
Sbalit
X
-
Autorem citovaného textu je ghh Přejít na původní příspěvekLama programuje
Amiga je boží!
pařba a flink chtěj celýho člověka...
- Poděkování 1
Komentovat
-
Autorem citovaného textu je Lisiak4 Přejít na původní příspěvekPokud to nutnost není, jaké jsou výhody, když ve vlastním tasku podprogram běží?
Minimig 4MB/ARM ; FPGA Arcade ; Amiga 500 ; Amiga 2000 ; Amiga 1200 ; AOS 4.1 FE -> WinUAE
- Poděkování 5
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řístupAmiga DraCo DaMi PegasosII G4 G5
- Poděkování 3
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ůjdeAmiga DraCo DaMi PegasosII G4 G5
- Poděkování 1
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
-
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 poziciAmiga DraCo DaMi PegasosII G4 G5
- Poděkování 1
Komentovat
-
Autorem citovaného textu je ghh Přejít na původní příspěvekSamply 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 pozicivzorkovací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.
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ímNaposledy upravil Defor; 02.11.2021, 20:21:08.
- Poděkování 1
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 Lisiak; 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 Lisiak; 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ě.
Amiga DraCo DaMi PegasosII G4 G5
- Poděkování 7
Komentovat
Komentovat