OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 13.11.2024, 01:41

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 
Autor Zpráva
 Předmět příspěvku: playMod / CDS
PříspěvekNapsal: 04.02.2024, 11:31 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2340
Bydliště: Brno
Has thanked: 886 times
Been thanked: 331 times
PlayMod / CDS ve vývoji...

Hudební rutina pro hraní MODů.

Od října 2023 jsem začal dělat na hudební rutině hrající již klasický formát MOD pro počítač Commodore Amiga. Je určená primárně pro použití ve hře kterou možná někdy udělám, proto některé věci řeší snadněji než tracker pro hudbu u kterého se neví, který MOD se bude hrát.

Současný stav:
- Hraje MODy bez efektů, práce s hlasitostí je ale samozřejmě podporována
- pracuje s secondary tempem (tempo v rozsahu 1-20 hexa)
- finetune pro sample je podporováno (tabulky pro finetune převzaty z jiného trackeru a v kódu je to uvedeno)
- včera kód rozběhaný i pro Amige 500 (na pár místech jsem skákal na nepérny bajt v paměti)

Ještě by se mělo udělat:
- donastavit tabulku pro stopování samplů i pro pomalejší A500 (zatím nastaveno spíše pro A1200)
- samostatný timer pro efekty (například pro zpřesnění již naprogramovaného efektu volume slide)
- dořešit správnou práci s filtrem vysokých frekvenci, který HW AMigy obsahuje
- pokud je program spuštěný z FDD, vypnout po nahrání motorek FDD.

Ještě je naprogramováno:
- možnost skákání na další skladby zatím na úrovni cyklovaní v přesně daném pořadí pomocí šipky nahorů a dolů. Opravdu jednoduchá logika, kde se v programu musí upravit kolik skladeb má program obsahovat, pak lze cyklovat ve skladbách pomocí šipek oběma směry. Pro správnou detekci stisku kláves bylo použito možná to pojmenuji špatně ale přerušení level 2, jinak by se detekoval jen úplně první stisk klávesy. Pomocí klávesy ESC a levého tlačítka na myši se program ukončuje. Přerušení level 2 bylo použito opravdu nejzákladnější, při problémech s detekcí stisku klávesy budu logiku nabalovat. Na reální A1200 mi to funguje bez problémů, reakce programu na stisk klávesy je velice příjemně svižná. Při emulaci na A500 taky bez problémů.

V programu se umístněný skladeb řeší nejjednodušeji a to takhle:

- první skladba = pozice 0
- druhá skladba = + délka první skladby
- třetí skladba = + délka první skladby + délka druhé skladby a tak dále... .

Další snad důležité specifikum:
- časovaní pomocí CIA, Jsou použity 2 CIA časovače, které se mezi sebou střídají, čím lze nastavit přeněji tempo hraní MODu. Vůči správnému secundary tempu v rozsahu 1-20 hexa hraji o teď 1 úroveň rychleji (o jednu ůroveň nastavení časovače CIA), oba časovače CIA mají teď nastavenou stejnou hodnotu kvůli správnému hraní 1 skladby kdy jeden nejmenovaný hudebník jde s rozsahem práce se samply tak na hranu, že s mým přímým přístupem na HW po hudební stránce (jiné trackery použivají složitějši elektronický propočet při práci se sínusovkou samplu) jsem to musel popohnat pro čisté zahrání 1 ze současných 4 skladeb.

Poslední verze kódu přiložena, není dostatečně komentována.
Taky krátké video, kde zahraji část z MODu Neverending Story již z emulace A500. MOD je zahraný s chybami (efekt volume slide zatím nemá vlastní časovač).

Zdrojový kód:
Příloha:
playMod138public.zip [8.95 KiB]
151 krát


Video na YouTube:
https://youtu.be/yxavwsHGYyM?si=tM_zbl73O1ewUEvq

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 28.10.2024, 13:18 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2340
Bydliště: Brno
Has thanked: 886 times
Been thanked: 331 times
Rozbehavani souboroveho manazeru LDOS, ktery se mi nechtel inicializovat, zjistil jsem ze je problem s CIA casovacem u ktereho se pro vyreseni problemu muselo zavest preruseni. LDOS krome jineho i automaticky pakuje / depakuje soubory. Je pro PC, vytvoreny soubor samozrejme pro Amigu.

Preruseni CIA jsem dal na 2 mista. Pred inicializaci LDOSu a pred inicializaci nastaveni CIA casovani pro mou hudebni rutinu. Tim jsme vyresil problem a LDOS se mi jiz inicializuje a tedy soubory mi dohrava tak jak potrebuji. MODy maji velikosti v rozsahu 160 az 190 KB. Pak hraju 1 MOD cely a po nem se nahraje a zacne hrat MOD co ma 395 KB. MODy co zazneji jsou od Poison-a. Jen druha dekompilace je pomalejsi, pak jiz je to sviznejsi. LDOS by mel umoznovat nahravat data i prubezne za behu, jeste uvidim jestli se to pokusim pouzit. Ja ted hlavne procistil kod, jak jsem se pokousel rozbehat LDOS do soucasneho stavu (jeste jsem neni u konce, ale jiz to opet nejak vypada). Jednou mi MOD nezacal hrat, ale jeste par veci casem v programu udelam a vseobecnou logiku si jeste projdu.

Pardon za ten prach na notebooku, ja mam na nem pripojenou externi klavesnici, na ktere mam alespon o 5 procent mene prachu. Bordel na LCD je zkresleny, zapricinuje ho spatne vycentrovana cocka objektivu na mem mobilu... .

Video s LDOSem v akci pracujicim s formatem ADF, myslim ze to umi i HDD... .

Jak se vracim v ramci nacteni predesle skladby, to vrneni hlavicky je proste boží... :like: :)
LDOS primarne pouziam pro snizeni pametovych naroku tim, ze mi umoznuje dohravat data postupne. Samozrejme supr je i komprimace dat, kdy mi dá napriklad MOD na priblizne 60 procent jeho puvodni velikosti za celkem svizne prace se sobory. LDOS je porad aktivni projekt, co mam info, pracuje se i na nove verzi.

Video zde na YT zde:
https://youtu.be/h0orqz6WRBM?si=33LABy2JSvTbkin8

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 28.10.2024, 15:18 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3842
Bydliště: Bratislava
Has thanked: 376 times
Been thanked: 815 times
Lisiak4 píše:
nepérny bajt v paměti
To je aky ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 28.10.2024, 15:40 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2340
Bydliště: Brno
Has thanked: 886 times
Been thanked: 331 times
Busy píše:
Lisiak4 píše:
nepérny bajt v paměti
To je aky ?


To je ne moc rozsirena specificka pseudoinstrukce. Jeji hodnota ciny 0,25 periodickych. Vetsinou ji staci zaokrouhlovat na 20 cisel. Je dulezite nezaokrouhlovat na min cisel nez 20, to pak muze zpusobit chybu a stav se pak spatne vyhodnotit jako logicka nula nebo jako pulbajt neboli nibble. Jedná se tedy o čtvrť bajt v odborných kruzích známí jako "nepérny bajt".

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 29.10.2024, 15:45 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3842
Bydliště: Bratislava
Has thanked: 376 times
Been thanked: 815 times
Lisiak4 píše:
jsem skákal na nepérny bajt v paměti
...
To je ne moc rozsirena specificka pseudoinstrukce. Jeji hodnota ciny 0,25 periodickych. Vetsinou ji staci zaokrouhlovat na 20 cisel. Je dulezite nezaokrouhlovat na min cisel nez 20, to pak muze zpusobit chybu a stav se pak spatne vyhodnotit jako logicka nula nebo jako pulbajt neboli nibble. Jedná se tedy o čtvrť bajt v odborných kruzích známí jako "nepérny bajt".
Obavam sa ze tak celkom nerozumiem reci tvojho kmena...
Ako mozes v realne vykonavanom kode skakat na pseudoinstrukciu ? Alebo skakat na polbajt ci stvrtbajt ?!?! :shock:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 30.10.2024, 11:19 
Offline
Kecka
Uživatelský avatar

Registrován: 04.11.2022, 15:31
Příspěvky: 54
Has thanked: 0 time
Been thanked: 16 times
No šak nepérny je taký, ktorý sa nepere. Podobne jak rezať nerezovú trubku - sa nedá rezať, keď je nerezová.
Poukázal si na hrúbku, tak si z teba Lišiak spravil srandu a ešte aj na to si mu skočil. :lol:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 30.10.2024, 11:56 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3842
Bydliště: Bratislava
Has thanked: 376 times
Been thanked: 815 times
8088 píše:
No šak nepérny je taký, ktorý sa nepere. Podobne jak rezať nerezovú trubku - sa nedá rezať, keď je nerezová.
Poukázal si na hrúbku, tak si z teba Lišiak spravil srandu a ešte aj na to si mu skočil. :lol:
Cela finta je v tom, ze ja som na nic nepoukazoval a seriozne sa pytal.
Ze tam ma byt slovo "nepárny" ma samozrejme napadlo ako prve, ale preco by česky pisuci Lisiak zrazu (a bez hlbsieho kontextu) chcel pouzit v texte slovenske slovo ?!?! Ak som mu na to skocil, tak preto lebo mu ta hrubka zmarila jeho ciele ktore chcel dosiahnut pouzitim slovenskeho slova (ak vobec nejake take mal) ;)


(alebo mozno fakt iba nevedel ako sa to slovenske slovo spravne pise)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 30.10.2024, 12:08 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 4096
Has thanked: 305 times
Been thanked: 496 times
Ještě že o tématu nemám ani páru, takže jsem nepárný, v oblasti Hané bezparý, jižně od Znojma Dampf frei :P.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 30.10.2024, 12:25 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2340
Bydliště: Brno
Has thanked: 886 times
Been thanked: 331 times
S českým slovem lichý a sudý mám pořád problém který je který a nepérny byl překlep... ;)

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: playMod / CDS
PříspěvekNapsal: 30.10.2024, 13:14 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3842
Bydliště: Bratislava
Has thanked: 376 times
Been thanked: 815 times
Lisiak4 píše:
S českým slovem lichý a sudý mám pořád problém který je který a nepérny byl překlep... ;)
Ja som sa lichý a sudý naucil tak ze lichy znamena zaroven nieco nedobreho (nepravdivy, falosny...) a kedze párne/sudé cisla mam ovela radsej tak nepárne/liche su pre mna nieco nedobre.
A odvtedy s tym nemam problem :)
https://www.nechybujte.cz/slovnik-souca ... lich%C3%BD


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz