Enterprise Forever
:HUN => SOUND: => Topic started by: geco on 2009.March.27. 15:16:58
-
Nincs valakinek leírása,vagy infója az enterprise-os MOD zenék felépítéséről?
Eddig erre sikerült rájönni:
dtm
0000-0007 type text
0008-000f length of pattern part (1st 2 bytes)
0010-002f song name
0030-xxxx patterns xxxx=30+length of pattern part
xxxx-+2e8 sample lengths and sample names
+2e8-end samples
-
Nincs valakinek leírása,vagy infója az enterprise-os MOD zenék felépítéséről?
Új lejátszó készül ? :)
Eddig erre sikerült rájönni:
dtm
0000-0007 type text
0008-000f length of pattern part (1st 2 bytes)
0010-002f song name
0030-xxxx patterns xxxx=30+length of pattern part
xxxx-+2e8 sample lengths and sample names
+2e8-end samples
DTM-hez pattern adatok formátuma (a parancskódok teljes listája még nincs kész, de a lényeges információk már megvannak, és viszonylag könnyen ki lehet egészíteni):
C000h: újrakezdés címe: 2 byte (első pattern: C004h)
C002h: patternek száma: 1 byte
C003h: újrakezdéskor lejátszandó patternek száma: 1 byte
C004h: patternek kezdőcímei: patternek száma * 4 * 2 byte
C004h: első pattern bal csatorna 1 (2 byte)
C006h: első pattern bal csatorna 2 (2 byte)
C008h: első pattern jobb csatorna 1 (2 byte)
C00Ah: első pattern jobb csatorna 2 (2 byte)
C00Ch: második pattern bal csatorna 1 (2 byte)
C00Eh: második pattern bal csatorna 2 (2 byte)
C010h: második pattern jobb csatorna 1 (2 byte)
C012h: második pattern jobb csatorna 2 (2 byte)
C014h: ...
C004h + (nPatterns * 8 ) -: pattern adatok:
három lehetséges esemény típus van: hangjegy, várakozás (szünet), és parancs
hangjegy + 1 időegység várakozás: 2 byte; hangmagasság, hangmina
hangmagasság félhangban: (18: eredeti magasság 11025 Hz-en)
ha nulla, akkor nincs hang
hangminta száma * 4 (4: első, 8: második, stb.)
várakozás: 1 byte
C0h + (időegységek száma - 1)
parancs: 2 byte; parancskód, paraméter (N)
80h + parancskód: a parancs után hangjegy következik várakozás nélkül
90h + parancskód: 1 időegység várakozás a parancs után
parancskódok:
0: sebesség beállítása (alapértelmezés: 60)
egy időegység hossza = N / 500 másodperc
1: pattern vége a következő időegységben
2: track vége
3: hangmagasság növelése (mértékegység ?)
4: hangmagasság csökkentése
5: ?
6: ?
7: ?
8: ?
9-15: érvénytelen
egy pattern teljes időtartama: 64 időegység
-
Új lejátszó készül ? :)
Én azt remélem, hogy az SNDPLAY tudni fogja ezt is :oops:
-
Köszönöm szépen :) ,én is bízom az SNDPLAY-ben. :D
Olyan apró terveim vannak, hogy kilopom a DTM playerből a lejátszó rutint, és az újonnan készült átiratokat megpróbálom feldobni egy kis zenével. :D
A DTM formátumot meg azért kezdtem el nézegetni, hogy megtudjam a konverter hogyan alakítja át a MOD-okat. :)
-
Ez bonyolultabb, mint ahogy gondoltam :oops:, azt hittem, hogy ugyanazon adatok kerülnek kiadásra mindig, pl első fél byte hangszermita, második hangerő, 2. byte meg hangmagasság, 3. byte meg egyéb vezérlő funkciók. Valami ilyen elképzelésem volt.
Jól mellétippeltem. :D
-
További DTM formátum információ:
A hangminták táblázatában a név előtti 8 byte:
0: ha nem 0, akkor a hangminta nem használt
1: 0 |
2: 0 | (nem használt byte-ok ?)
3: 0 |
4-5: hangminta teljes hossza
6-7: loop kezdete (ha ugyanaz, mint a teljes hossz, akkor nincs loop)
A hangmagasság növelésénél és csökkentésénél egy 10 bites frekvencia érték változik, amelyből a mintavételezési frekvencia így számítható (N >= 113):
f = 3517867 / (N - 1) (Hz)
A 3-as parancskód tehát kivonja a paramétert a 10 bites frekvencia kódból, a 4-es pedig hozzáadja, mert a kisebb érték jelent magasabb hangot. A lejátszó rutin valójában csak 9 bites felbontással tudja változtatni a frekvenciát, tehát a fenti képlet csak közelítő értéket ad.
-
parancs: 2 byte; parancskód, paraméter (N)
Itt a sebesség beállítása, pattern vége, és track vége globális (minden csatornára vonatkozik), a többi parancs, amelyek a hangmagasságot változtatják, pedig csak az adott csatornára érvényes.
5: ?
6: ?
7: ?
8: ?
A 8-as a hangmagasságot változtatja -14 - +14 tartományban a paraméter által meghatározott sebességgel, de csak egyszer. Sokszor egymás után kiadva gyakorlatilag FM (vibrátó) effektust eredményez.
-
Ez bonyolultabb, mint ahogy gondoltam :oops:, azt hittem, hogy ugyanazon adatok kerülnek kiadásra mindig, pl első fél byte hangszermita, második hangerő, 2. byte meg hangmagasság, 3. byte meg egyéb vezérlő funkciók. Valami ilyen elképzelésem volt.
Jól mellétippeltem. :D
A MOD formátum funkcióinak nagy részét a DTM nem tudja, mert a lejátszó rutin csak a hangmagasságot tudja változtatni, hangerő, szűrő, stb. nincsen. Annak ellenére, hogy a DTM file-ok általában MOD-ok konverziói, a két formátum között csak kevés hasonlóság van.
-
Én azt remélem, hogy az SNDPLAY tudni fogja ezt is :oops:
Nem valószínű, hogy a már meglevő lejátszónál sokkal jobbat sikerülne készíteni :oops:
-
A hangerő változtatását nem lehet megoldani?
Ha jól sejtem, akkor a 8 bites samplék a frekvenciaértékeket tárolják, nem lehet ezeket az értékeket átalakítással az A0-A5 protokon keresztül megszólaltatni, egy 8khz-es megszakításból? Akkor lehetne a volume értékekkel játszani.
Amit láttam eddig a lejátszóból, az az, hogy a átbillenti az A8-at és az AC-t D/A-ba és erre tolja ki a négy csatornát, kettőt A8-ra, és a másik kettőt AC-re, gondolom ezért nem lehet a hangerővel játszani, mert az fix, viszont, ha az első megoldás is működőképes, akkor már a hangerőt is lehet módosítgatni.
De ez csak az én agyament elképzelésem, bizti valamit nagyon rosszul képzeltem el. :D
-
Nem valószínû, hogy a már meglevõ lejátszónál sokkal jobbat sikerülne készíteni :oops:
Ha kicsit jobb az is jó :-) az SNDPLAY-ban már úgyis kikísérletezted, hogyan lehet maximálisan kihajtani Dave bátyót :-)
Ami alapvetõen jó lenne, ha egy program tudna minden elképzelhetõt lejátszani. Az már 17 éve is zavart, hogy a szebb DTM Player nem tudja az MBT zenéket lejátszani.
A vinyó miatt pedig amúgy is hozzá kéne nyúlni ezekhez.
-
A hangerő változtatását nem lehet megoldani?
Gondolom, arra már nem volt elég CPU idő :)
Ha jól sejtem, akkor a 8 bites samplék a frekvenciaértékeket tárolják,
Nem, egyszerű 11025 Hz-es digitalizált hang, amelyet (6 bitre konvertálva és a csatornákat keverve) a lejátszó kiír az A8h/ACh portokra. A hangerő változtatásához a hangmintákat szorozni kellene a hangerő értékkel.
-
Ha kicsit jobb az is jó :-) az SNDPLAY-ban már úgyis kikísérletezted, hogyan lehet maximálisan kihajtani Dave bátyót :-)
Ami alapvetõen jó lenne, ha egy program tudna minden elképzelhetõt lejátszani. Az már 17 éve is zavart, hogy a szebb DTM Player nem tudja az MBT zenéket lejátszani.
A vinyó miatt pedig amúgy is hozzá kéne nyúlni ezekhez.
Ha nincs meg a DTM lejátszó forráskódja, akkor érdemes lenne visszafejteni lefordítható assembler formátumba ?
-
Ha nincs meg a DTM lejátszó forráskódja, akkor érdemes lenne visszafejteni lefordítható assembler formátumba ?
Ezt bevállalhatom, elkezdtem nézegetni, és kommentezni is, bár pár dolog biztosan nem stimmel. :D
-
Gondolom, arra már nem volt elég CPU idő :)
Gyanús, megnéztem a SWAP-ot, az megszakításból játsza le a zenét, minden megszakítás után van egy várakozás a következő megszakításra, és nem sok időt kell ott eltöltenie :D, párszor megy végig csak a várakozási cikluson.
-
Gyanús, megnéztem a SWAP-ot, az megszakításból játsza le a zenét, minden megszakítás után van egy várakozás a következõ megszakításra, és nem sok idõt kell ott eltöltenie :D, párszor megy végig csak a várakozási cikluson.
Nekem pont a SWAP fektette meg a DOS -os emulátoromat. :(
Nem tudtam vele megbírkózni, elfogyott az energiám. :oops:
-
Ezt bevállalhatom, elkezdtem nézegetni, és kommentezni is, bár pár dolog biztosan nem stimmel. :D
Én is elkezdtem visszafejteni:
[attachurl=#]
-
fel lehet-e használni valamire
Pl megoldani a vinyókezelést: ne fixen rakja ki az A:, B:-t, hanem FISH 20-as hívással lekérdezni, hogy milyen meghajtók léteznek.
-
Pl megoldani a vinyókezelést: ne fixen rakja ki az A:, B:-t, hanem FISH 20-as hívással lekérdezni, hogy milyen meghajtók léteznek.
Ezen kívül még más kisebb változtatásokat is lehetne végezni, pl. 5 helyett 6 bites hangminták, EXOS kompatibilis memóriakezelés, esetleg turbós gépek támogatása, stb.
-
Ezen kívül még más kisebb változtatásokat is lehetne végezni, pl. 5 helyett 6 bites hangminták, EXOS kompatibilis memóriakezelés, esetleg turbós gépek támogatása, stb.
Jó ötletek :-) bár nem lehet, hogy egyszerübb lenne újat írni?
-
Jó ötletek :-) bár nem lehet, hogy egyszerübb lenne újat írni?
De, lehetséges. Akkor a fenti 'dtm.s' file-t nem érdemes tovább javítani ? :oops:
-
Hat bites hangminták lejátszása hogyan kivitelezhető, ha a dave D/A-ja ötbites?
Az marha jó lenne, elég sokat számítana a hang minőségében a kisebb adatvesztés miatt.
-
Hat bites hangminták lejátszása hogyan kivitelezhető, ha a dave D/A-ja ötbites?
Az marha jó lenne, elég sokat számítana a hang minőségében a kisebb adatvesztés miatt.
A DAVE kimenete 6 bites, ha jól tudom, bár nem túl jó minőségű, mert a megvalósításához használt ellenállások pontatlanok. A DTM lejátszó azért csak 5 bites, mert két csatornát kever a bal és a jobb oldalon is, és így a hangmintákat a 0-31 tartományra korlátozza, hogy ne legyen túlcsordulás a keveréskor.
A 6 bites lejátszáshoz nem a DAVE "DAC" módját kellene használni, hanem normál módban két külön csatornát. Ezt a legegyszerűbben a legnagyobb frekvenciájú négyszögjellel lehet elérni, de az SNDPLAY bővítés egy trükkel megoldja, hogy két csatorna kimenete folyamatosan logikai '1' legyen (így nagyobb a hangerő, és elkerülhető a nagy frekvenciájú négyszögjel).
Az SNDPLAY két 6 bites csatorna használatával valójában 7 bites lejátszást valósít meg, bár a minőség a pontatlan DAC miatt természetesen csak emulátoron igazán jó.
-
A DAVE kimenete 6 bites, ha jól tudom, bár nem túl jó minõségû, mert a megvalósításához használt ellenállások pontatlanok.
Az RP1, RP3 ellenálláskupacokat kéne kicserélni valami nagyobb pontosságúra?
-
Az RP1, RP3 ellenálláskupacokat kéne kicserélni valami nagyobb pontosságúra?
A kapcsolási rajz (http://www.ep128.hu/Ep_Hardware/Pic/EP64-2.jpg) szerint elvileg igen. De lehet, hogy nem csak az ellenállások, hanem a DAVE kimenetei is befolyásolhatják a minőséget :?:
-
A DAVE kimenete 6 bites, ha jól tudom, bár nem túl jó minőségű, mert a megvalósításához használt ellenállások pontatlanok. A DTM lejátszó azért csak 5 bites, mert két csatornát kever a bal és a jobb oldalon is, és így a hangmintákat a 0-31 tartományra korlátozza, hogy ne legyen túlcsordulás a keveréskor.
A 6 bites lejátszáshoz nem a DAVE "DAC" módját kellene használni, hanem normál módban két külön csatornát. Ezt a legegyszerűbben a legnagyobb frekvenciájú négyszögjellel lehet elérni, de az SNDPLAY bővítés egy trükkel megoldja, hogy két csatorna kimenete folyamatosan logikai '1' legyen (így nagyobb a hangerő, és elkerülhető a nagy frekvenciájú négyszögjel).
Az SNDPLAY két 6 bites csatorna használatával valójában 7 bites lejátszást valósít meg, bár a minőség a pontatlan DAC miatt természetesen csak emulátoron igazán jó.
Köszi, és valóban egy pötit rosszul emlékeztem, vagy csak simán kihagytam a bit0-át a számításból. :oops:
Erről a 6 bites lejátszásról szeretnék bővebb infót kapni, ha lehet, bevonva a regisztereket is, mit hova, hogyan. :)
Ja és az sndplay megoldása is érdekel. :)
Ma ilyen érdeklőső napom van. ;)
-
Erről a 6 bites lejátszásról szeretnék bővebb infót kapni, ha lehet, bevonva a regisztereket is, mit hova, hogyan. :)
Ja és az sndplay megoldása is érdekel. :)
A DTM lejátszó 6 bitesre módosítva (az eredeti verzió itt (http://enterpriseforever.com/enterprise_forum/dtm_es_mbm_fileokrol_info-t472.0.html;msg14246#msg14246) található):
[attachurl=#]
[attachurl=#]
Az első változat az egyszerűbb megoldást (nagy frekvenciájú négyszögjel) használja. Itt az A7h portra 18h (DAC mód a bal és jobb csatornán) helyett 0-t kell írni, a lejátszó kódot pedig így változtattam meg:
ld a, (de)
out (0a8h), a
ld a, (hl)
out (0aah), a
...
ld a, (de)
out (0ach), a
ld a, (hl)
out (0aeh), a
Eredetileg ilyen volt:
ld a, (de)
add a, (hl)
out (0a8h), a
out (0a8h), a
...
ld a, (de)
add a, (hl)
out (0ach), a
out (0ach), a
Tehát nem összeadja a két csatornát, hanem külön írja ki a 0. és a 2. hanggenerátor hangerő portjára.
Természetesen az 5 bites formátumra konvertáló részt (1950-1960 sor körül) átírtam, hogy ne 3, hanem csak 2 bittel léptesse jobbra a hangmintákat :)
A második verzió hasonló, csak a 0. és a 3. hanggenerátort használja, amelyek az SNDPLAY 'initDAC' rutinját (173. sor) felhasználva nem 125 kHz-es négyszögjelet, hanem folyamatos '1' kimenetet állítanak elő.
-
Köszi szépen az ismertetőt, nem is tűnik bonyolultnak :) , otthon emésztem majd. :)
-
Maradék két csatornával elérni a 7 bitet reménytelen ötlet?
-
Maradék két csatornával elérni a 7 bitet reménytelen ötlet?
Két probléma van: nem tudom, hogyan lehet háromnál több hanggenerátort D/A kimenetnek használni :oops:, és lassabb lenne a lejátszást végző ciklus (a frekvenciatáblázat számításának a módosításával ez ugyan javítható, bár a minőség valamivel rosszabb lenne).
-
A "6 bites" DTM lejátszó lefordítva:
[attachurl=#]
[attachurl=#]
-
A "6 bites" DTM lejátszó lefordítva:
Megnéztem valódi gépen, kicsit furcsán mûködik :-( egyes hangszerek halkabban szólnak, vagy akár teljesen el-el hallgatnak, pl a DEDOMIX elején a pergõdob akadozik.
-
Megnéztem valódi gépen, kicsit furcsán mûködik :-( egyes hangszerek halkabban szólnak, vagy akár teljesen el-el hallgatnak, pl a DEDOMIX elején a pergõdob akadozik.
Feltöltöttem egy kisebb javítást (a dtm6b.s file-t is újabbra cseréltem), és az egyszerűbb verziót is lefordítva. De könnyen lehet, hogy más a probléma oka, mint amit most javítottam; mindenesetre ha a 'dtm6b' nem működik, akkor elvileg az SNDPLAY-nek is hibásnak kell lennie ? :???:
-
Feltöltöttem egy kisebb javítást
Határozottan javult a helyzet! Bár mintha még kisebb döccenés lenne, még tesztelem...
egyszerûbb verziót is lefordítva.
Ebben valami nagyon nem stimmel :oops: az 1,3 csatornák egyáltalán nem szólnak.
-
Határozottan javult a helyzet! Bár mintha még kisebb döccenés lenne, még tesztelem...
Akkor lehet, hogy valóban az a probléma, hogy itt a kód a video memóriában fut (az SNDPLAY viszont nem), és ez elrontja az időzítést. Talán a 221. sorban a várakozást, amit 10-ről 7-re írtam át, még tovább is érdemes lenne csökkenteni :?:
Ebben valami nagyon nem stimmel :oops: az 1,3 csatornák egyáltalán nem szólnak.
Ez viszont meglepő :smt103 Itt a "hagyományos" nagy frekvenciájú négyszögjeles megoldást használtam (az A0h-A7h portok 0-ra vannak állítva a debugger szerint is), tehát nem tudom, miért fordulhat elő az, hogy csak emulátoron működik.
Egyébként nem lehet, hogy fordítva vannak a verziók ? A dtm6a az egyszerűbb, és a dtm6b-ben van az SNDPLAY DAVE trükk.
-
A dtm6a az egyszerûbb, és a dtm6b-ben van az SNDPLAY DAVE trükk.
Stimmel, én is így néztem!
-
Tehát a dtm6a az, amelyik egyáltalán nem mûködik ?
Igen, a hangszerlistában ahol 1> meg 3> jel villan fel, azok a hangok nem szólnak, a 2> 4> igen
-
Nem gondoltam volna, hogy ennyivel jobban fog szólni a 6 bites hang, mint az 5 bites, ami eddig pocsék volt, az most jobb lett, ami meg kicsit rossz, az teljesen jó :), igaz én csak emulátoron teszteltem.
-
Újabb javítás: ez a verzió már nem fagy le magnós gépen indításkor:
[attachurl=#]
[attachurl=#]
[attachurl=#]
Kipróbáltam igazi EP-n is ezt az egyszerű teszt file-t, de nekem működött mindkét 6 bites változat, mind a négy csatornán volt hang. Lehetséges azonban, hogy csak többszöri próbálkozás után, vagy nem minden gépen jön elő a hiba :?:
[attachurl=#]
-
EXT és ROM formátumba fordítható DTM lejátszó (beta verzió, még nem igazán megbízhatóan működik):
Ezzel három lehetséges módon lehet betölteni a file-okat:
- FILE bővítés (ha van)
- DTM.INI file használata (hasonlóan az IVIEW-hez, de egyelőre csak 256 byte lehet a file nevek mérete összesen)
- a parancssorban közvetlenül megadott file lejátszása
Ezen kívül EXDOS nélküli rendszeren file név nélkül elindítva üres file nevet próbál meg betölteni. A memóriakezelést (elvileg) EXOS kompatibilisra írtam át, és természetesen a lejátszás 6 bites.
-
EXT és ROM formátumba fordítható DTM lejátszó (beta verzió, még nem igazán megbízhatóan mûködik):
És ebben már nem a videómemóriában fut a lejátszó kód?
-
És ebben már nem a videómemóriában fut a lejátszó kód?
A hangmintákat lejátszó ciklus eddig sem a videomemóriában futott, hanem csak az 50 Hz-es megszakítás egy része (amely a pattern eseményeket - pl. hangjegy kezdete, várakozás, stb. - kezeli). 128K-nál nagyobb memória esetén azonban ez most normál RAM-ba is kerülhet. 128K-s gépen csak a nullás lapon futó lejátszó kód és a hangminták vannak gyors memóriában.
Az eredeti verzióhoz képest kisebb lassulást jelent az 50 Hz-es megszakításban, hogy fix szegmensszámok helyett most változók vannak.
-
Ha még érdekel valakit, itt egy újabb verzió: :)
Ez a turbós gépek támogatásán kívül különböző kisebb javításokat tartalmaz.
-
Ha még érdekel valakit, itt egy újabb verzió: :)
(Attachment Link)
Ez a turbós gépek támogatásán kívül különböző kisebb javításokat tartalmaz.
Persze, hogy érdekel. :)
Ma eszembe jutott egy dolog, azt írtad, hogy a dinamikus memóriafoglalással a lejátszó ciklus egy kicsikét lassult, mi lenne, ha a program elején megkérné a lejátszó a memóriaszegmenseket, és nem egy helyen tárolná el őket, hanem mindegyik memóriaszegmens számát eltárolná a belapozás előtt, így nem lenne sebességlassulás, csak a kód lenne picit hosszabb.
pl
'a' tartalmazza a megkapott memóriaszegmens számát
ld (page+1),a
...
page ld a,00
out (0b0h),a
-
Ha még érdekel valakit, itt egy újabb verzió: :)
Engem érdekel a téma, csak láttam, eléggé "szakmai" dolgokról volt szó, meg .s kiterjesztésû forrásfájlt lehetett letölteni, amirõl nem sok fogalmam van, ezért nem nagyon nyomultam.
De a .com, .exe, barátságos kiterjesztésû fájlokat szívesen tesztelem.
-
pl 'a' tartalmazza a megkapott memóriaszegmens számát
ld (page+1),a
...
page ld a,00
out (0b0h),a
Valóban, csak azért nem így oldottam meg, mert az 50 Hz-es megszakítás kivezérlésjelző nélkül is több, mint 600 ciklus, és ahhoz képest a lassulás nem jelentős. Mindenesetre ez az új változat már a gyorsabb megoldást használja (egyébként még így sem azonos az eredetivel, mert az egymást követő fix szegmensszámokat használt INC/DEC utasításokkal, de mint említettem, az eltérés minimális mértékű).
[attachurl=#]
A forráskódon is javítottam egy keveset (megjegyzések stb.). Egyelőre még nem fut EXOS 2.0 alatt, talán a fix helyre másolt karakterkészlet miatt; egyébként úgy látszik, a ZozoTools aktuális verziója sem működik a régebbi EXOS változattal. Ezen kívül a melegindítás kissé bizonytalannak tűnik, néha lefagy (hasonló probléma az SNDPLAY-nél is előfordult).
-
Engem érdekel a téma, csak láttam, eléggé "szakmai" dolgokról volt szó, meg .s kiterjesztésû forrásfájlt lehetett letölteni, amirõl nem sok fogalmam van, ezért nem nagyon nyomultam.
De a .com, .exe, barátságos kiterjesztésû fájlokat szívesen tesztelem.
Most már van .ext és .rom file is :oops: De a forráskódot is egyszerűen le lehet fordítani az epvideoconv csomagban található 'sjasm.exe' programmal (a parancssorból futtatva csak a forrás file nevét kell paraméterként megadni).
-
Megnéztem valódi gépen, kicsit furcsán mûködik :-( egyes hangszerek halkabban szólnak, vagy akár teljesen el-el hallgatnak
Határozottan javult a helyzet! Bár mintha még kisebb döccenés lenne, még tesztelem...
Nekem a legújabb verzió ilyen:
[attachthumb=#]
[attachurl=#]
Ez nem tűnik hibásnak, bár lehet, hogy csak egyes gépeken fordul elő probléma (mint például az SNDPLAY kivezérlésjelzője) ?
-
egyébként úgy látszik, a ZozoTools aktuális verziója sem mûködik a régebbi EXOS változattal.
Igen, ezzel még adós program fejlesztõi gárdája :oops: (Elvileg ha likvidáljuk a ZTCLK periféria megadását a ROM elejérõl, akkor nem fog azonnal meghalni a rendszer 2.0 alatt)
Egyébként a FILE miatt próbáltad? Ide (http://enterpriseforever.com/szoftver/epdos_fejlesztese-t50.0.html;msg13094#msg13094) tettem fel különálló verziót.
-
Most már van .ext és .rom file is :oops:
Tetszik a dolog!
De valami furcsaságok továbbra is vannak, és az a érdekes, hogy ugyanazt a számot újra meg újra betöltve hol jó, hol akad...
De olyan is volt, hogy pl a CAMBOD elején fokozatosan elkezdett halkulni, aztán mikor egyszerre szólt az összes csatorna, akkor megjavult.
Valami idõzítési problémának tûnik.
Majd még kipróbálom több gépen is.
-
Egyébként a FILE miatt próbáltad?
Igen :)
De valami furcsaságok továbbra is vannak, és az a érdekes, hogy ugyanazt a számot újra meg újra betöltve hol jó, hol akad...
De olyan is volt, hogy pl a CAMBOD elején fokozatosan elkezdett halkulni, aztán mikor egyszerre szólt az összes csatorna, akkor megjavult.
Valami idõzítési problémának tûnik.
Talán érdemes lenne úgy megoldani, hogy választható legyen 5 bites vagy az egyszerűbb nagy frekvenciájú négyszögjelet használó 6 bites (bár ha jól emlékszem, meglepő módon azzal is voltak problémák :smt085) D/A kimenet ? Esetleg a 4 csatornás 8 bites DAC helyett (van valakinek ilyen :?:) is lehetne.
De ha ez nem működik, akkor elvileg az SNDPLAY sem megbízható, tehát abból is érdemes lenne rosszabb minőségű, de minden gépen biztosan működő változatot készíteni ?
Majd még kipróbálom több gépen is.
Turbós és IDE vezérlős gépeken működik ?
-
Talán érdemes lenne úgy megoldani, hogy választható legyen 5 bites vagy az egyszerûbb nagy frekvenciájú négyszögjelet használó 6 bites (bár ha jól emlékszem, meglepõ módon azzal is voltak problémák :smt085) D/A kimenet ?
Igen ezt akartam is kérni, hogyha nem nagy meló akkor rakjuk bele ezt is a config menübe.
Esetleg a 4 csatornás 8 bites DAC helyett (van valakinek ilyen :?:) is lehetne.
Szándékomban áll megépíteni, így nem baj ha benne marad :-) Azt meg tudod mondani melyik két-két port a jobb meg a bal?
De ha ez nem mûködik, akkor elvileg az SNDPLAY sem megbízható
Ez érdekes kérdés... mivel ott nincs összehasonlítási alap, lehet, hogy ezért nem tûnik fel? Itt a DTM-nél már 100x is hallottam az ember a kedvenceit, benne van a fülében, így minden kis döccenõ feltünik.
tehát abból is érdemes lenne rosszabb minõségû, de minden gépen biztosan mûködõ változatot készíteni ?
Lehet, hogy érdemes lenne kipróbálni, és akkor lehet összehasonlító tesztet csinálni.
Turbós és IDE vezérlõs gépeken mûködik ?
Persze! Vinyón vannak a DTM kupacok :-)
Turbóban szépen felismerte a sebességet.
-
Igen ezt akartam is kérni, hogyha nem nagy meló akkor rakjuk bele ezt is a config menübe.
OK. Lehetne akár 4 lehetőség is: eredeti 5 bites verzió, a két 6 bites, és a külső DAC.
Szándékomban áll megépíteni, így nem baj ha benne marad :-) Azt meg tudod mondani melyik két-két port a jobb meg a bal?
FC, FD a bal, és FE, FF a jobb. De lehet, hogy érdemes lenne más portokra tenni, mert az FE-t a Spectrum emulátor is használja ? Mindenesetre a külső DAC emulációját beépíthetem az ep128emu-ba.
Ez érdekes kérdés... mivel ott nincs összehasonlítási alap, lehet, hogy ezért nem tûnik fel?
Ez lehetséges, mert ha az SNDPLAY-nél az egyik csatorna nem működik, akkor csak halkabb és 6 bites minőségű lesz a hang. Itt (http://enterpriseforever.com/enterprise_forum/hanglejatszo_fejlesztese-t455.0.html;msg13959#msg13959) található egy program, amellyel a DAVE trükk működése ellenőrizhető. Mivel több, kissé eltérő módon is meg lehet oldani, lehet, hogy van olyan változat, amelyik minden gépen használható.
Turbóban szépen felismerte a sebességet.
Turbós gépen egyébként elvileg a minőség is valamivel jobb, mert az 50 Hz-es megszakítás rövidebb időre szakítja meg a lejátszást, és így egyenletesebb a sebesség.
-
4 választható DAC típus, EXOS 2.0 kompatibilitás javítva:
[attachurl=#]
-
4 választható DAC típus, EXOS 2.0 kompatibilitás javítva:
Lehet, hogy én szúrtam el valamit, de állandóan csak End of file jelzést kapok, miután választottam a 4 lehetõség közül.
-
Lehet, hogy én szúrtam el valamit, de állandóan csak End of file jelzést kapok, miután választottam a 4 lehetõség közül.
Nekem működik :???:
-
Mindkét 6 bites módban ugyanaz :-(
-
Na megnéztem még vagy 5 gépet, a 3-as mód mindegyiken hibázik (legtöbbször az a jelenség, hogy 1-2 hangszer nem szól), 2-es némelyiken, legalábbis elsõ ránézésre mûködött, de volt olyan, ahol az is produkálta ezt a jelenséget.
-
Itt van két módosított verzió, amelyben a 2-es és a 3-as módot is megváltoztattam:
[attachurl=#]
[attachurl=#]
A 2-es módot érdemes többször is tesztelni, mert ha hibás, akkor lehet, hogy csak 50% valószínűséggel nem működik.
-
FC, FD a bal, és FE, FF a jobb. De lehet, hogy érdemes lenne más portokra tenni, mert az FE-t a Spectrum emulátor is használja ? Mindenesetre a külső DAC emulációját beépíthetem az ep128emu-ba.
Innen (http://enterpriseforever.com/emulatorok/ep128emu_206-t443.0.html;msg14527#msg14527) letölthető a módosított emulátor verzió.
-
Itt van két módosított verzió, amelyben a 2-es és a 3-as módot is megváltoztattam:
Egyelõre csak két gépen próbáltam. A 2-es mód a DTM1-ben a jobb, az majdnem mindig jó, de úgy általában halkabb mint az 5 bites, ez normális?
A 3-as mód meg a DTM2-ben, viszont még a 2-es módnál is sokkal halkabb, de most meg van minden hangszer.
És a gép órajel úgy tûnik nem számít.
-
Egyelõre csak két gépen próbáltam. A 2-es mód a DTM1-ben a jobb, az majdnem mindig jó, de úgy általában halkabb mint az 5 bites, ez normális?
Igen. A 2-es mód 6 dB-el halkabb (a kimeneti szint a fele), mint az 1-es, a 3-as pedig még halkabb ugyanennyivel. Viszont jó lenne olyan 2-es módot találni, ami mindig működik; de ha a dtm1-ben található változat eddig a legjobb, akkor egyelőre azt fogom beépíteni (az egyébként a legegyszerűbb is).
A 3-as mód meg a DTM2-ben, viszont még a 2-es módnál is sokkal halkabb, de most meg van minden hangszer.
Itt annyi a változás, hogy 125 kHz helyett 62.5 kHz lett a frekvencia. Úgy látszik, a legnagyobb frekvencián nem működnek megbízhatóan a hanggenerátorok; a Big Demo MOD lejátszó részénél is csak 62.5 kHz-et használtak.
-
FC, FD a bal, és FE, FF a jobb. De lehet, hogy érdemes lenne más portokra tenni, mert az FE-t a Spectrum emulátor is használja ?
Jogos felvetés! Sõt a készülõ 128-as verzió az FD-t is használja :-)
Végülis a DTM lejátszón kívül más nem használja, így nyugodtan átrakhatjuk pl F0-F3-ra.
-
Újabb teszt verziók: :)
[attachurl=#]
[attachurl=#]
Ezekben csak a 2-es mód változott, a többi ugyanaz, mint a dtm2-ben.
Végülis a DTM lejátszón kívül más nem használja, így nyugodtan átrakhatjuk pl F0-F3-ra.
Akkor átírjam F0-F3-ra ? Ha ez a cím marad, akkor módosítom az ep128emu-t is.
A 8 bites külső DAC esetleg használható lehetne az MBT Player-ben és az SNDPLAY-ben is :?:
-
Akkor átírjam F0-F3-ra ? Ha ez a cím marad, akkor módosítom az ep128emu-t is.
Ok
A 8 bites külsõ DAC esetleg használható lehetne az MBT Player-ben és az SNDPLAY-ben is :?:
Akartam is javasolni :-) Az MBT fájlok lejátszását nem lehetne a DTM Player-be begyömöszölni? Meg eredeti MOD fájlokat :-)
-
Akartam is javasolni :-) Az MBT fájlok lejátszását nem lehetne a DTM Player-be begyömöszölni? Meg eredeti MOD fájlokat :-)
A Rockdigi file-okat talán, ez a formátum úgy látszik, jóval kevesebbet tud, mint a DTM. De a DTM lejátszónak az MBT-hez képest hátránya is van, például a hangjegyek idózítése kevésbé pontos, és a Rockdigi formátumban csak 5 bites hangminták vannak, tehát a minőség sem lenne igazán jobb.
-
A dtm3.s/dtm4.s teszt verziókat próbálta valaki igazi gépen ? Ha valamelyikben jobb a 2-es mód, mint a dtm1.s-ben, akkor azt fogom használni.
-
A dtm3.s/dtm4.s teszt verziókat próbálta valaki igazi gépen ? Ha valamelyikben jobb a 2-es mód, mint a dtm1.s-ben, akkor azt fogom használni.
Egyelõre egy gépen néztem meg, viszont normál és turbo módban is, mindkét progival több zenét is végig, eddig nem jött elõ hibázás!
-
Egyelõre egy gépen néztem meg, viszont normál és turbo módban is, mindkét progival több zenét is végig, eddig nem jött elõ hibázás!
Ez eddig jól hangzik. Remélhetőleg a sok változat között lesz olyan, amelyik minden gépen működik. :) Bár a dtm3 az SNDPLAY-ben nem lenne használható, csak a DTM lejátszóban, mert nem marad szabad csatorna a megszakításhoz.
-
Ez eddig jól hangzik. Remélhetõleg a sok változat között lesz olyan, amelyik minden gépen mûködik. :) Bár a dtm3 az SNDPLAY-ben nem lenne használható, csak a DTM lejátszóban, mert nem marad szabad csatorna a megszakításhoz.
Akkor ha jól értem, elsõsorban a dtm4-es verziót nyomassam?
-
Akkor ha jól értem, elsõsorban a dtm4-es verziót nyomassam?
Változtatás nélkül tulajdonképpen az is csak a DTM lejátszóban használható :oops: Javított verzió:
[attachurl=#]
A "majdnem jó" dtm1 kisebb módosítással:
[attachurl=#]
-
Végre volt idõm több gépen is kipróbálni ezt a 4,5 verziót, egyelõre nem jelentkezett hiba :ds_icon_cheesygrin: Volt 4,6,7.12 Mhz-en is tesztelve.
-
Végre volt idõm több gépen is kipróbálni ezt a 4,5 verziót, egyelõre nem jelentkezett hiba :ds_icon_cheesygrin: Volt 4,6,7.12 Mhz-en is tesztelve.
Tehát a dtm5 eddig úgy látszik, mindig működik, és jobb, mint a dtm1 ? Akkor azt építem be az SNDPLAY-be is.
-
Javaslat új funkcióra: belsõ hangszóró ki/bekapcsolás.
Annak aki még nem likvidálta hardveresen azt a vacak csipogót :)
-
Javaslat új funkcióra: belsõ hangszóró ki/bekapcsolás.
Annak aki még nem likvidálta hardveresen azt a vacak csipogót :)
OK. Bár azt hiszem, a 80h portra nem ír a DTM és az SNDPLAY sem, tehát ha a programok futtatása előtt kikapcsolod a hangszórót (pl. BASIC-ben a TOGGLE SPEAKER/Shift+F7-el), akkor az lejátszás közben is kikapcsolva marad.
-
Visszafejtett MBT lejátszó:
[attachurl=#]
Valószínűleg még van mit javítani rajta, mindenesetre lefordítva az eredeti player.com file másolatát adja vissza.
A "ROCKDIGI 2" formátumon kívül egyébként ez a program "MB PLUS" formátumú file-okat is le tud játszani, bár nem tudom, hogy ilyen file-ok valójában léteznek-e (tehát elég lenne csak a ROCKDIGI-t beépíteni a DTM lejátszóba :?:). Még "MB 1.3" formátumot is felismer, de nem tudja lejátszani (tervezett, de nem megvalósított funkció ? :)).
-
A "ROCKDIGI 2" formátumon kívül egyébként ez a program "MB PLUS" formátumú file-okat is le tud játszani, bár nem tudom, hogy ilyen file-ok valójában léteznek-e
Ha minden igaz találtam egyet:
-
Ha minden igaz találtam egyet:
Akkor megpróbálom majd ezt a formátumot is beépíteni, ha még elfér.
-
Talán elfér, van legfeljebb kb. F00h szabad hely, az MBT lejátszó mérete pedig, a lényegtelen részeket törölve és kisebb optimalizálással 3K. Marad 700-800 byte, amit az új formátumokhoz sebesség és DAC beállításra, billentyűzet kezelésre, és egyéb célokra fel lehet használni.
A ROCKDIGI formátum hangminta betöltését és az 5 bites hangminták kicsomagolását sikerült optimalizálni, a program mérete 125 byte-al kisebb lett, és gyorsult is:
[attachurl=#]
-
A DTM-mel nem lehetne legalább valamennyire összegyúrni? Ha annyira különböznek a formátumok, hogy közös lejátszó rutint nem is lehet csinálni, akkor is esetleg egyes részfeladatok rutinjai lehetnének közösek? Pl képernyõkezelés, hangerõkijelzõ, fájlkezelés, stb...
-
egyes részfeladatok rutinjai lehetnének közösek? Pl képernyõkezelés, hangerõkijelzõ, fájlkezelés, stb...
Ezeket természetesen közösnek terveztem, egyébként nem is lenne sok értelme egybeépíteni a lejátszókat, hanem külön DTM és MBT bővítés lenne ugyanabban az .ext file-ban. A 3K méret az MBT lejátszónál csak a file betöltéshez és lejátszáshoz minimálisan szükséges rutinokat tartalmazza, egyébként a program eredetileg 6K méretű.
A DTM.EXT-ben jelenleg valamivel több, mint 8K helyet használ a kód (4000h-60F1h), és további 4K terület kell a változóknak (táblázatok, pufferek, verem, stb.), ez a memóriát kissé átrendezve a 7000h-7FFFh területre kerül. Tehát szabadon marad kb. a 6100h-6FFFh, ahol elvileg elfér az MBT lejátszó.
-
DTM, MB Plus, és RockDigi lejátszö (teszt verzió):
Elsõ ránézésre nem találtam hibát!
Egy pici "bug" van, de ez már az eredeti MBT lejátszóban is benne van, csak most a szebbik kijelzõ csíkokkal feltûnõbb: van amikor még szólnak a hangok, de a kijelzõ már lement nullára. Ez jól látható pl a PRAYER elején, ahol a tiszta orgonás rész van.
-
Egy pici "bug" van, de ez már az eredeti MBT lejátszóban is benne van, csak most a szebbik kijelzõ csíkokkal feltûnõbb: van amikor még szólnak a hangok, de a kijelzõ már lement nullára. Ez jól látható pl a PRAYER elején, ahol a tiszta orgonás rész van.
Ez a DTM lejátszónál is így van, csak ott valamivel lassabban futnak a csíkok. Valójában nem a hangerőt jelzik, hanem csak minden hangjegy elején a maximális értékről indulnak, és aztán lassan visszatérnek a nullára. DTM módban másodpercenként 50-szer 1 karakterrel, MBT módban pedig másodpercenként 12.5-szer 5 karakterrel. Az MBT mód az eredeti MBT lejátszót "emulálja", ott a kivezérlésjelző csak 8 lehetséges értéket tud megjeleníteni (0..7), ezért a DTM.EXT-ben ilyen file-ok lejátszásakor 35,30,...,5,0 jelenik meg.
-
Egy pici "bug" van, de ez már az eredeti MBT lejátszóban is benne van
Még egy lehetséges kisebb probléma: az MBT lejátszó és az RDIGI.COM (http://www.ep128.hu/Ep_Util/Prg/RockDigi.rar) sebessége eltér. Az MBT lejátszónál egy RockDigi hangminta minimális időtartama 262 Z80 ciklus (a gyakorlatban az átlagos érték 263.3-263.5 a megszakítások stb. miatt), viszont az RDIGI.COM-nál, ha minden csatorna be van kapcsolva a menüben, akkor 268 (illetve 268.7 körüli a mért átlagos érték - itt kisebb a lassulás, mert a lejátszó egyszerűbb, nincs kivezérlésjelző stb.); az egyes csatornák kikapcsolása 3 ciklussal gyorsít.
Érdemes-e lassítani a lejátszót, hogy a sebesség a RockDigi szerkesztőhöz hasonló legyen, vagy maradjon az MBT kód változtatás nélkül :?:
-
Én speciel ezeket a zenéket mindig az MBT Player-rel hallgattam :-)
-
Én speciel ezeket a zenéket mindig az MBT Player-rel hallgattam :-)
Lehet, hogy valóban célszerűbb az MBT Player sebességét meghagyni. Ugyanis a RockDigi szerkesztő szerint a hangminták H4 (~493.88 Hz) magasságúak, és ezt - néhány hangmintát hangszerkesztő programmal megnézve - 15625 Hz (= 256 Z80 ciklus) mintavételezési frekvenciával lehet közelíteni. A RockDigi szerkesztő ilyen sebességgel is tud lejátszani, ha az összes csatorna ki van kapcsolva, de akkor nem lehet hallani semmit :) Mindenesetre az MBT lejátszóban talán ezért van a 256 és 268 közötti átlagos érték, azaz 262 ciklus :)
-
Ha minden igaz találtam egyet:
Ezt hol találtad :?: Az ep128.hu-n a DTM/RockDigi zene csomagokban nem találtam ilyen file-t. Talán van még több is ? :)
-
Ezt hol találtad :?: Az ep128.hu-n a DTM/RockDigi zene csomagokban nem találtam ilyen file-t. Talán van még több is ? :)
Hsoft-os lemezen, elvileg ez lett beépítve a Pasziánszba. Viszont ez egy olyan forrásszöveg kupacban volt, ami nem a múltkor felkerült "Hsoft-összesben" volt, hanem még a 90-es években kaptam Lacitól. Ki tudja mi kerül még elõ, van még egy csomó floppy ami átnézésre vár :oops:
-
Új "multiplay" csomag:
A fontosabb változások:
- frissített DTM+MBT lejátszó (a RockDigi lejátszás sebessége maradt az MBT Player-nek megfelelően, de van néhány kisebb javítás)
- a ROM nem fagy le, ha a második szegmens nem található
-
Új "multiplay" csomag (ez már talán nem hibás :oops:):
A fontosabb változások:
- frissített DTM+MBT lejátszó (a RockDigi lejátszás sebessége maradt az MBT Player-nek megfelelően, de van néhány kisebb javítás)
- a ROM nem fagy le, ha a második szegmens nem található
Ezt megnézte valaki ?
-
Ezt megnézte valaki ?
Igen, nagyon tetszik! :smt041
Nem érzem amúgy, hogy más lenne a sebessége, mint a Rockdiginek.
Apró megjegyzés: néha mintha "nyávogna" a hang, amihez hasonlót sok-sok éve a Soundtrackerrel úgy sikerült produkálnom, hogy nagyon magas hangon szólaltattam meg a hangmintákat. Sztem a Bad-star címû MBM szám egyes részeiben ez különösen megfigyelhetõ - úgy rémlik, mintha az eredetiben nem ilyen lett volna.
UI: Meghallgattam a Rockdigivel is a Bad-start, ott nem nyávog. Az MBT Playerrel nem tudtam megnézni, ott floppyval kéne valamit hókuszpókuszolni.
Meg meghallgattam egy másik számot egymás után a dtm.ext-tel és a Rockdigivel, és nagyon furcsa volt egymás után. Gondolom, a sebességkülönbség miatt, amit önmagában talán nem igazán lehet érzékelni.
Amúgy nagyon jó ez a bõvítés!
-
Apró megjegyzés: néha mintha "nyávogna" a hang, amihez hasonlót sok-sok éve a Soundtrackerrel úgy sikerült produkálnom, hogy nagyon magas hangon szólaltattam meg a hangmintákat. Sztem a Bad-star címû MBM szám egyes részeiben ez különösen megfigyelhetõ - úgy rémlik, mintha az eredetiben nem ilyen lett volna.
Egy ilyen "nyávogós" részről tundál küldeni egy rövid .wav file-t :?:
-
Nem tudom biztosan, hogy ez összefügg-e a "nyávogással", de egy hibát mindenesetre találtam :oops: RockDigi és MB Plus file-oknál nem hívtam meg azt a rutint, amely azt próbálja biztosítani, hogy ne legyen hangminta szegmens a video memóriában. 128K-s gépen ugyanis az .ext verzió használatakor a bővítés az F9 szegmensre kerül, a lefoglalható szegmensek pedig az FA, FB, FC, FD, és FE. A hangmintáknak három szegmenst kell foglalni, és nem lehetnek a video memóriában, mert akkor változik a lejátszás sebessége (akár folyamatosan is, attól függően, hogy a négyből éppen hány csatorna olvassa a hangmintákat a video memóriából). Ezért ilyenkor a kódot átmenetileg át kell másolni az F9-ről az FC szegmensre, és az F9 így felszabadul a hangminták tárolására; ezt a műveletet elfelejtettem az MBT lejátszó formátumainál.
A különbség egyébként egyszerűen megfigyelhető: próbáld a ROM verziót, vagy nagyobb (pl. 640K) RAM méretet használni. Így is "nyávog" ?
-
Egy ilyen "nyávogós" részrõl tundál küldeni egy rövid .wav file-t :?:
MP3-ban is jó lesz?
Ugyanazt a részt felvettem elõször Rockdigibõl, utána a Dtm.ext-bõl, köztük rövid szünettel. Az elsõ taktusoknál, a bal csatornában lehet érezni, hogy nem egyenletes a hangmagassága annak a folyamatos hangnak.
-
MP3-ban is jó lesz?
Igen. Ez úgy látszik, valóban az a probléma, amelyet az előbb leírtam.
Ugyanazt a részt felvettem elõször Rockdigibõl, utána a Dtm.ext-bõl, köztük rövid szünettel.
Nem fordítva van ? :) Nekem az első tűnt rossznak.
Az elsõ taktusoknál, a bal csatornában lehet érezni, hogy nem egyenletes a hangmagassága annak a folyamatos hangnak.
Azt megnézted, hogy a ROM verzióval vagy RAM bővítéssel van-e még valamilyen hiba ? Ha nincs, akkor feltöltöm a javított változatot.
-
Nem fordítva van ? :)
De. :oops:
Azt megnézted, hogy a ROM verzióval vagy RAM bõvítéssel van-e még valamilyen hiba ? Ha nincs, akkor feltöltöm a javított változatot.
A legutóbb feltett frissítésedben nem vettem észre más hibát, ha arra gondolsz.
Amúgy az 1-2-es szegmensen exos21, a 4-esen basic21, az 5-ösön iview, a 10-ese epfileio, a 20-21-esen exdos13 van nekem, ha így értetted a kérdést. Az Iview a legfrissebb, amit ide felraktál, ha minden igaz.
-
Remélhetőleg ez már nem nyávog: :)
[attachurl=#]
A fenti hiba javításán kívül van néhány újdonság is (és ezzel együtt új hibák lehetősége :oops:):
- a ROM változat a FILE bővítést is tartalmazhatja (iview_f.rom; az iview.rom a FILE nélküli "normál" verzió). Az .ext file-okban azonban már nem volt elég hely, pedig elsősorban azoknál lett volna hasznos :ds_icon_frown:
- a tömörített IVIEW képek betöltése 256 byte helyett 4K méretű puffert használ (de csak 64K-nál nagyobb RAM esetén), ami elvileg javíthatja a sebességet igazi gépen floppyról töltésnél, de még nem ártana tesztelni, hogy ez a gyakorlatban valóban hasznos-e (azaz észre lehet-e venni a gyorsulást :))
- kijavítottam egy IVIEW (és CVIEW is) bugot :oops: Az LS változót nem törölte a program, így EP64-en több kép megjelenítésekor csak az első volt jó, a többinél az LPT-be hibás címek kerültek
- néhány egyéb kisebb javítás, optimalizálás, stb.
-
Kisebb bug: ha ENTER-rel választom a fájlt a FILE-ben, akkor átugorja a D/A kérdést, mert ott is egybõl beolvas egy ENTER-t.
És amire nem tudtam rájönni, hogy miért: ha EPDOS-szal töltjük be a RAM-ba a ROM-ot, akkor a DTM lejátszó elszáll induláskor.
Ezzel kapcsolatban egy apró javaslat: a 2. szegmens elején 00-ák vannak az EXOS_ROM helyett (gondolom, hogy fölöslegesen ne láncolódjon be), ez lehetne inkább IVIEWROM vagy akármi, csak a ROM karakterek legyenek a helyükön, és akkor az EXOS 2.3 fel tudja ismerni RAM-ban szimulált ROM-ként, és nem törli.
-
Kisebb bug: ha ENTER-rel választom a fájlt a FILE-ben, akkor átugorja a D/A kérdést, mert ott is egybõl beolvas egy ENTER-t.
Nekem működik, csak vigyázni kell arra, hogy az Enter billentyűt nem szabad túl sokáig lenyomva tartani a file választáskor. De be lehet építeni a DAC választó menü elé egy várakozást az Enter elengedésére.
És amire nem tudtam rájönni, hogy miért: ha EPDOS-szal töltjük be a RAM-ba a ROM-ot, akkor a DTM lejátszó elszáll induláskor.
Ha a DTM bővítő a RAM-ban fut, akkor felülírja a szegmens végén az utolsó 4K területet (ROM esetén lefoglal egy szegmenst és átmásolja magát). Itt azonban a ROM verzióban egy rövid, lapozást végző kód is található, amely a két szegmens közötti ugrást teszi lehetővé. Mivel ez is felülíródik, az első bővítő letapogatásnál lefagy a rendszer. Tehát az IVIEW.ROM egyszerűen nincs felkészítve arra, hogy RAM-ba lehessen tölteni (de éppen erre a célra vannak az .ext file-ok :)). Azonban ezt a problémát valószínűleg nem nehéz kijavítani.
Ezzel kapcsolatban egy apró javaslat: a 2. szegmens elején 00-ák vannak az EXOS_ROM helyett (gondolom, hogy fölöslegesen ne láncolódjon be), ez lehetne inkább IVIEWROM vagy akármi, csak a ROM karakterek legyenek a helyükön, és akkor az EXOS 2.3 fel tudja ismerni RAM-ban szimulált ROM-ként, és nem törli.
Tehát ha más "ROM" végű szöveg van ott, akkor nem láncolódik be külön bővítőként, de az EXOS 2.3x felismeri RAM-ba töltött ROM folytatásaként ?
-
Tehát ha más "ROM" végû szöveg van ott, akkor nem láncolódik be külön bõvítõként, de az EXOS 2.3x felismeri RAM-ba töltött ROM folytatásaként ?
Igen
-
Remélhetőleg sikerült mindegyik hibát kijavítani:
[attachurl=#]
Az IVIEW_F.ROM-ban a DTM bővítés akkor is lefoglal egy szegmenst és átmásolja a kódot, ha RAM-ban fut, mert egyébként felülírná a FILE-t. Ezért ilyenkor nagyobb a memóriaigénye, mint az IVIEW.ROM-nak.
Vannak frissítendő ROM file-ok ? Ha nincs más, akkor ezzel az IVIEW.ROM verzióval, és az IDE.ROM-mal új ep128emu_roms.bin csomagot készítek.
-
Vannak frissítendõ ROM file-ok ? Ha nincs más, akkor ezzel az IVIEW.ROM verzióval, és az IDE.ROM-mal új ep128emu_roms.bin csomagot készítek.
Egy EPDOS 1.7-el lógok még, ami felismeri a mindenféle zene fájlt a DTM számára.
-
Egy EPDOS 1.7-el lógok még, ami felismeri a mindenféle zene fájlt a DTM számára.
Úgy emlékszem, mintha még az SNDPLAY formátum is hiányozna (legalábbis az aktuális ROM csomagban levő EPDOS nem ismeri fel, hanem ASCII szöveg file-nak tekinti) :?:
Amit még esetleg ki lehetne javítani, az az "insufficient memory" hiba nagy lemezeknél, bár gondolom az nagyobb átalakítást igényelne.
-
Amit még esetleg ki lehetne javítani, az az "insufficient memory" hiba nagy lemezeknél, bár gondolom az nagyobb átalakítást igényelne.
A nagyobb átalakítást hívják EPDOS 1.9 beta-nak :ds_icon_cheesygrin: most, hogy lesz vinyó az emulátorban, és lehet majd jól debbugolni, belendülhet a fejlesztés!
-
Már korábban is akartam említeni:
A DTM.EXT-ben a lejátszóban felül a felirat: Digitrax module player version 1.1, 1992 04 19 by Gyányi Sándor.
Ezt a feliratot módosítani kéne, hiszen már Rockdigi fájlokat is lejátszik, így a DTM player név sem illik hozzá, vagy legalábbis a verziószámban változás történt. Arról nem is beszélve, hogy Gyányi mester neve mellé István mester nevét is oda kéne írni. :D
Javaslatom a Digitrax Module Player helyett az Enterprise Module Player, ez átfogóbb, mindenféle EP modul zenét lejátszik. Apróság, hogy angol helyesírás szerint a címben az összes kezdõbetû nagybetû. (Könyvek, cikkek címében biztosan, de gondolom, programok címében is.)
-
Erre már én is gondoltam!
-
Még az az apróság jutott eszembe, hogy nem lehetne-e esetleg megcsinálni, hogy ha Rockdigibõl mentett zenét játszunk le, akkor kiírja a hangszerek neveit oda, ahol a DTM fájloknál ez lenni szokott és villog mellette a szám, hogy hányas csatornán szól éppen? Persze nem tudom, a Rockdigi a hangszerek neveivel menti-e el a zenét.
-
Olyan apró terveim vannak, hogy kilopom a DTM playerből a lejátszó rutint, és az újonnan készült átiratokat megpróbálom feldobni egy kis zenével. :D
Ez végül sikerült? Mert akkor ezt a DTM lejátszó kódot én szívesen felhasználnám saját programban / átiratban... :-)
-
Ez végül sikerült? Mert akkor ezt a DTM lejátszó kódot én szívesen felhasználnám saját programban / átiratban... :-)
Ez már igen!
Nem is kell szerintem kilopni a lejátszó rutint. Tudtommal István visszafejtette az egészet.
-
Nem is kell szerintem kilopni a lejátszó rutint. Tudtommal István visszafejtette az egészet.
Valóban, a "Multiplay" csomag forráskódjában megtalálható a továbbfejlesztett DTM+MBT lejátszó is :) Ha jól emlékszem, legalább egy átiratba (H.E.R.O. ?) be is került ez a lejátszó.
-
Valóban, a "Multiplay" csomag forráskódjában megtalálható a továbbfejlesztett DTM+MBT lejátszó is :) Ha kól emlékszem, legalább egy átiratba (H.E.R.O. ?) be is került ez a lejátszó.
Pontosan :D
Én sem emlékszem többre :)
Ha jól rémlik, akkor még az eredeti verziót tettem bele, és utána lett átalakítva István tuningolt verziójára.
-
Szórakoztam a DTM playerrel, és most vettem észre, hogy 16KHz-en játsza le a samplékat, szükséges a 16KHz, vagy le lehet menni 8KHz-re, mert akkor lehetne megszakításból lejátszani, és szabad időben elrendezni a háttérmunkát. ami miatt a nagy frekvenciájú rövid samplék torzan szólnak.
-
Kozben megalmodtam, hogy miert 16KHhz a lejatszasi sebesseg, a mintavetelezesi suruseg miatt, de lehet kiprobalom 8KHz-en, de megszakitasbol, elmeletileg turbos gepen mehetne a 16KHz megszakitasbol
-
az durva lenne ha digi zene menne a falbontó alatt :)
mondjuk lehetne olyat is hogy 1 szólam, ami egy komplett zene. de úgy, hogy pici részletekből áll (loopok) és azokat kódból raknád egymás után (egy kis pattern leíró). elvileg talán lehetne így viszonylag kevés memmel egy jóval proci kímélőbb zenét belerakni. arról nem is beszélve hogy hangzásilag ebbe bármit bele lehet rakni.
-
pl itt van ez, 8 bit, 8khz, 14Kbyte...
háát... mondjuk ebből kéne 5-6... és patternt csinálni ami meghatározza milyen sorrendben játszódjanak le...
hm lehet hogy mégse jó, nem lenne túl változatos
-
hm lehet hogy mégse jó, nem lenne túl változatos
Esetleg a powerupok hatásának idejéig szólna, de ahhoz még kevésbé változatos is jó.
-
Leteszteltem, sajnos a 8KHz-es megszakításos verzió rosszabb, mint a nem megszakításos 16KHz-es, viszont turbós gépen a 16KHz-es megszakításos tökéletes.
A dtmint16khz snapshotot csak 8MHz-es konfiggal érdemes elindítani, egyébként szépen loopol :D
-
ezt most nem értem, ezek ilyen specy48-as zenék? amiket amúgy imádok, csak ide digi zene kéne, nem? mégiscsak EP...
-
Ez egy konvertált Amiga mod 3-féleképp lejátszva.
-
ja aha, csak az eleje specy48-as, most már tovább hallgattam
-
16KHz-es megszakításos verzióban az eleje sem.
-
amúgy van egy ötletem.
a képen egy 8khz-s megszakítás border színezése látható (persze sokkal ritkásabban, hogy jobban érthető legyen a kép)
a lényeg hogy 8 khz-n megy a megszakítás, de a lejátszás 16khz. a trükk az (a képből talán egyből érthető), hogy a megszakítás elején váltunk sample-t, és a végén.
az egész persze csak úgy műxik, hogyha a megszak rutin hossza pont fele a 8khz-nek. ezt úgy lehetne csinálni hogy egyéb dolgokat is beleteszünk, hogy ki legyen használva
-
ja és persze fix hosszúnak kell lennie időben a megszak rutinnak. vagy legalábbis nagy különbségek nem lehetnek.
-
jó ötlet, a fix hosszal sincsen gond, itt a DTM playernél az lesz a gond, hogy eleve két hang lejátszása kitölti a megszakítási időt, sőt a megszakításos verzió még többet is :(
-
amúgy az ilyen digi lejátszók megszak rutinja miért nem csak annyi hogy egy memcímet játszik le? egy számláló léptetése, mem kiolvasása, portokra kirakása.
aztán lenne egy "buffer töltő" rutin ami meg tölti a buffert. persze double vagy triple bufferrel működne csak.
lehet hogy nyerni lehetne ezzel proci időt, hiszen a megszak rutin kicsi lenne és a buffer töltőből megspórolható lenne sok utasítás, hiszen az nagy adagokban töltené a buffert, szóval mint egy dma-s cucc
én csak 2 szólamút tudtam írni mondjuk annak idején, úgyhogy sokat nem értek hozzá :)
-
Ezen a buffertöltésen gondolkoztam én is ma, de arra jutottam, hogy fix töltőkódok használata nélkül ez lassú lenne, fix töltőkódok használatával meg a program lenne nagyon nagy, itt a fix töltőkódok alatt azt értem, hogy lennének előre definiált, mondjuk 16 bájtot töltő kódvariációk több frekvenciára, de lehet hosszabbak kellenének, amik a sample frekvenciájának függvényében lennének meghívva.
Az a bibi, hogy a DTM lejátszó lejátszó részéből a maximum lett kihozva sebeségügyileg, minden hangcsatorna egy adat kiolvasása memóriából, annak portra kiírása, és 8 bites regiszterekkel a következő adat címének kiszámításából áll, ez 57 órajelciklus, a sallangokkal együtt az egész lejátszó rész 246 órajelciklus úgy emléxem, megszakításos verziót eddig kb 370-re sikerült kihozni, a növekmény 12 órajelciklus csaatornánként az első 3 csatornára, és a negyedikre 32, mert oda az IX regisztert sikerült bevonnom (megpróbálom az elsődleges regiszterkészlet DE-jét, ezzel még 20-at lehet nyerni), és sajnos a megszakítás miatt jön még kb +50 órajelciklus a nem megszakításos verzióhoz képest.
Visszatérve a buffereléshez, a megszakításban egy csatorna ideje lenne 25 órajelciklus, ami 32-vel kevesebb, mint az eredetiben, tehát ennyiből kéne átlagban mefoldani 1 bájt bufferba töltését, vagyis kevesebből ,mert ebből még le kell vonni a megszakítás által felhasznált plusz órajelciklusokat, kb 24 órajelciklus maradna egy bájtra, lehet rossul számoltam, és ezt még tovább csökkentené a lejátszást vezérlő rutin. :(
-
Közben sikerült kicsiholni , hogy 11696 Hz-es megszakítással működjön a lejátszó, még tudok gyorsítani rajta, így 11904 Hz-es megszakítás is menni fog alap gépen, már most szebben szólnak a magas hangok, mint a megszakítás nélküli 16KHz-es eredetiben, 6MHz-es turbós gépen meg már a 15625 Hz-es megszakításnak is mennie kell.
-
itt a 12KHz-es verzió, ebben a dob és a cin mélyebb, de a magas hangok jók, valamit valamiért, ha elkészül a lejátszó megszakításos verziója, mindenki eldöntheti milyen modot melyikbe tölti be :D
Turbós gépen elméletileg a megszakításos verzió tökéletes lesz.
És BÚjjÉK.
-
Kellemes kis muzsika az év első óráiban.
Nem tudom, az direkt van-e, hogy ha a végére ér a zene, akkor utána lassabban játssza elölről.
BÚÉK!
-
Kellemes kis muzsika az év első óráiban.
Nem tudom, az direkt van-e, hogy ha a végére ér a zene, akkor utána lassabban játssza elölről.
BÚÉK!
Na az nem :D , az még kiderítendő, hogy ezt miért csinálja.
-
Na az nem :D , az még kiderítendő, hogy ezt miért csinálja.
Elfárad és lelassul. :D
-
Itt egy verzió (~16KHz-es megszakítás), ami működget, turbó figyelés kiiktatva egyelőre (csak emulátorra van jól beállítva a megszakítás értéke), és a samplék mérete max 16K lehet, hogy jól szóljon, ahhoz ,hogy 64K samplét kezeljen, alaposabban bele kell nyúlni, 6MHz-es gépen működik alap 128KB RAM-mal is, 4MHz-es 128KB-s gépen a ~12KHz-es megszakítással nem biztos ( a kód videómemóriában fut ), bővített gépen nincs probléma. Csak DTM fájlokra működik, és a zene végén fagyi következik.
Érdemes folytatni, vagy elég a régi is?
Két sample, ami egész jól kihozza a nem megszakításos régi verzió, és a megszakításos verzió közötti különbséget.