OldComp.cz

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


Právě je 18.04.2024, 03:30

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




Odeslat nové téma Odpovědět na téma  [ Příspěvek: 1 ] 
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: 2287
Bydliště: Brno
Has thanked: 846 times
Been thanked: 308 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]
23 krát


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

_________________
Amiga - PMD 85


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

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 5 návštevní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:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz