Enterprise Forever
:HUN => Programozás => Topic started by: lgb on 2016.February.14. 00:12:06
-
Povinal eppen ketszemelyes partyt tartunk ... A meg novemberben irt kis tanulmany kodomat vegre ki tudtam probalni igazi EP-n SD kartya cartridge-el mivel az kell hozza, de amugy alapgep 128K rammal, stb. Elso teszt eredmenye (a hang azert romlik el mert befogtam a mikrofont veletlenul hehe, kozben meg Povi dugdossa az erosito kabelt stb - igy legalabb megvan az elso video feeling ...). 31KHz 6 bit audio lejatszas SD kartyarol, elvileg nem korlatozott hosszban, vagy hat ami rafer a kartyara. Demo:
https://youtu.be/VRZtURARmTw
-
király
azon gondolkodtam hogy az összes valaha létező ep-nek hány giga memóriája van összesen?
lehet hogy egy pár ezer ft-s sd kártyán ma már több van :D
-
Frankó, kéne hozzá valami látványosabb visualizer, meg egy PC tool, amivel egy összeválogatott mp3 listát fel lehet konvertalni egy sd kártyára úgy, hogy némi index infó legyen a számokról (szám ugráshoz), és akkor EP -ről lehetne zenét hallgatni ... :)
Meg kellene még bele random ugrálgatás a számok között, és én tutkó tolnám EP -ről ... :)
Pár CD -nyi anyag felférne egy SD kártyára ...
-
végre az alapgépem (128kB RAM) is le tud játszani pár másodpercnél is hosszabb digi zenét... :-)
-
végre az alapgépem (128kB RAM) is le tud játszani pár másodpercnél is hosszabb digi zenét... :-)
Ez mit jelent?
-
nem nézted a videót, amit lgb rakott ki tegnap éjjel?
-
Ez mit jelent?
Azt, hogy kvazi real-time olvassa SD-rol, igy megszakadas nelkul folyamatosan tudja lejatszani a hangot, nincs a memoria meretehez kotve (hogy csak annyit, ami elfer benne), es utana egy kis csend, amig utantolti a kovetkezo reszt.
-
Azt, hogy kvazi real-time olvassa SD-rol, igy megszakadas nelkul folyamatosan tudja lejatszani a hangot, nincs a memoria meretehez kotve (hogy csak annyit, ami elfer benne), es utana egy kis csend, amig utantolti a kovetkezo reszt.
És fájlból, vagy EXDOS lemez szektorról, vagy SD direkt szektorról?
-
És fájlból, vagy EXDOS lemez szektorról, vagy SD direkt szektorról?
Sajna csak SD direktben ... Arra nem feltetlen lenne eleg CPU ido a lejatszas mellett, hogy filerendszer stb dolgokkal tokolodjon az ember, plane ha meg EXDOS-on es/vagy FISH-en at kene zavarni az egeszet. Szoval ez hardware szinten kozvetlenul bizeralja az SD kartya illesztot. Azon elgondolkodtam, hogy lehetne-e azt, hogy legalabb csinal egy "terkepet", hogy melyik fizikai SD blokkokon van sorban a zene (akar ugy is hogy inditasnal kesziti el a 'terkepet'), es akkor azt felhasznalva direkt SD programozassal azt nezi sorba, igy vegulis filerendszerrol tudja lejatszani ugymond :) meg ha csalas is a dolog. A masik, hogy sajnos a FAT12 amugy is szukos, ez a Queen szam is 6 mbyte lenne pl, elegge szukos lenne ilyen ~32M max meretu particiokon tarolgatni zeneket ... FAT16-on mar elgondolkodna az ember jobban :-D
-
es utana egy kis csend, amig utantolti a kovetkezo reszt.
Ja.... én azt hittem egy folyamatos stream -ről van szó ... :(
És nem is lehet megoldani ? Hogy a memóriát csak buffernek használja, és párhuzamosan olvas és lejátszik ?
-
És mindez miért van off topicban, miért nincs saját rendes topicja? :)
-
Ja.... én azt hittem egy folyamatos stream -ről van szó ... :(
És nem is lehet megoldani ? Hogy a memóriát csak buffernek használja, és párhuzamosan olvas és lejátszik ?
De, folyamatosrol van szo! Eppen az az, hogy azt irtam, hogy ez *nem* olyan, hogy lejatszik aztan olvas (es addig csend), hanem folyamatos vegig a hang!, most kb 31KHz-en ... Pont ugy van ahogy mondod.
Eleve, ha nem igy lenne, kibukott volna a video felvetelen, hiszen 128K-s alapgep, 31KHz-en azert par masodperc utan hallatszott volna, ha nem folyamatos a stream-eles :)
-
És mindez miért van off topicban, miért nincs saját rendes topicja? :)
Szereny vagyok, nem tudom megerdemli-e :) Amugy meg en nem is tudnam attenni a mar meglevo hozzaszolasokat ugye, nincs hozza jogkorom ... Tedd at nyugodtan :)
-
Következő kérdés: honnan tölthető le?
-
De, folyamatosrol van szo!
Juhú! Milyen kúlság volna EP -ről tolni a zaxot, maxi minőségben ! :) Persze egy minimális élvezethez kell az, hogy relatíve könnyű legyen feltenni a cuccot az SD -re, és hogy valami olyasmit mint a rockdigi kezdjen a képpel is ...
-
Juhú! Milyen kúlság volna EP -ről tolni a zaxot, maxi minőségben ! :) Persze egy minimális élvezethez kell az, hogy relatíve könnyű legyen feltenni a cuccot az SD -re, és hogy valami olyasmit mint a rockdigi kezdjen a képpel is ...
Sajna nem sok CPU ido marad, mint gondolhatod is ... Kepet ki lehetne persze rakni v akarmi, de nem tudom mit lehetne "vizualizalni" ami meg belefer a dologba. Minoseg kapcsan arra mar gondoltam amugy, hogy a printer portra a PC-n is szokasos Covox :) technikaval csinalni egy 8 bites D/A-t es akkor eleve jobb lenne a minoseg, nem 6 bit, meg lehet csinalni, hogy linearisabb legyenek a szintek mint EP eseten allitolag a beepitett ellenallasok (?) pontatlansaga miatt, stb.
-
És 10MHz-es Z80 esetén? :-)
-
mi viszi a cpu időt a "direkt" sd olvasásnál?
-
végre az alapgépem (128kB RAM) is le tud játszani pár másodpercnél is hosszabb digi zenét... :-)
Miért? A Rockdigi cuccok nem zenék, nem digi, vagy nem hosszabbak pár másodpercnél? :D
-
És 10MHz-es Z80 esetén? :-)
:) Arra is gondoltam, hogy kulso D/A-val elkepzelheto, hogy akkor CD minosegben elvinne? Ha nem is feltetlen stereoban, azert monoban sem lenne rossz teljesitmeny ... Ahhoz a mostanihoz kepest csak annyi kene, hogy 31KHz-rol emelni meg a frekit a 44 (? vagy 41KHz?) kornyekere, es persze 2 byte egy sample nem 1. Szerintem ez 4 helyett 10MHz-be beleferne. Es akkor meg nem is a vizualizalasrol van szo mondjuk stb ...
A fo baj az (tudom, ez az en hibam!!!!!), hogy meg mindig nincs mukodo EP-m (lasd elozo zarojel ...) SD kartya olvasom meg plane. Igy azert nehez fejleszteni :) Ezt a kodot is meg novemberben irtam, es most tudtam kiprobalni eloben Povinal. Itt az emulatorok sem segitenek, mert ep128emu nem tud SD kartyat, a Xep128-am meg ugyan tud, de az meg pont hangot nem jelenleg, meg mondjuk sok mast se ugy, ahogy pontosan nem artana :)
-
mi viszi a cpu időt a "direkt" sd olvasásnál?
Az interrupt foleg. A lejatszo kod interruptban van, az jatsza le az audio buffer tartalmat. Itt kb 31KHz-en mar nem tul sok marad a foprogramnak ... A foprogram pedig var az SD kartyara ha kell, meg tolti az audio buffert, es nezi, nehogy buffer overflow legyen kozben, stb. Sajna a total direkt streaming nem oldhato meg, mert ugye az SD kartya az blokk szervezesu, azaz egy-egy blokk utan tovabb tart a kov byte-ot lekerni mint egy beolvasott blokkon belul. Ezert kell puffert alkalmazni, stb.
A puffer underflow nincs is kezelve, azzal a feltetelezessel elek, hogy eleg gyors az SD kartya ... ugy tunik a teszt alapjan Povinal, hogy ez szerencsere igaznak is tunik (mondjuk fura is lenne, ha nem, elvegre modern SD kartyaknal tudnak tolni ra videokat is akar jo minosegben, stb ...).
-
Következő kérdés: honnan tölthető le?
Meg sehonnan :) Ahhoz eleg gagyi jelenleg :-( De persze nem vagyok en semmi jonak az elrontoja, nem akarom megtartani magamnak (annak mi ertelme lenne), amugy a forraskodjat se majd ... Bar ez egyaltalan nem egy olyan nagy szam, inkabb az otlet erdekes benne szerintem.
-
de nem tudom mit lehetne "vizualizalni"
Hát mondom ... mint a rockdigi -ben is (ha jól emlékszem ez volt a neve) ...
Kitettek egy karakteres (8 pixelsor korüli magasságú) LPB -kből álló LPT -t, és a margó állítással (20-30 byte gondolom az egész képre) kirajzolnak egy függőleges hullámformát,
úgy hogy a kép egyik fele fekete másik meg fehér, és a határvonal meg a hullámforma ...
Nem mintha tudnám hogy kell olyat rajzolni, de talán nem nagy ördöngösség ...
-
Igazából valószínűleg nem jól emlékszem sem a névre, sem feltétlen a felbontása,
lehet hogy csak valamiféle "algoritmikus pontosság" a vastagabb vízszintes sávok,
de mindenesetre ilyesmi effekre gondolok:
https://www.youtube.com/watch?v=u1_OveF3K_4
(Nem kell hogy ilyen finom legyen, lehetne durvább is.)
-
Szektor másolás közben él az IRQ?
-
Valójában konkrétan erre emlékeztem (ez derengett) :) :
https://www.youtube.com/watch?v=XL9nGm9xVp0
-
Jó, ez mondjuk messze nem 20-30 byte, de lehetnének a csíkok 2x- 4x ilyen vastagok is ...
Lényeg hogy vmi mozogjon "ütemre" ... :)
-
Ezeknél szerintem csak egy lpt sor van, és ahogy fut a kép lesz teljes képernyős.
-
Ezeknél szerintem csak egy lpt sor van, és ahogy fut a kép lesz teljes képernyős.
Oks, ha jól érzem, akkor ez a megoldás csak csökkenti a módosítandó terület méretét kb. 1-2 byte -ra ... :)
Hangmegszakonként ... gondolom ... vagy vmi ilyesmi ...
Szupi ...
-
Szektor másolás közben él az IRQ?
Vegig el. Marmint ha itt engem kerdeztel :) A 16K audio buffer ilyen "cirkularis" modon van allandoan lejatszva az IRQ handler altal. A foprogram pedig azt tolti (SD kartyat olvasgatva) szinten a fenti "cirkularis" modon, arra figyelve, hogy ha oda erne ami eppen lejatszasi pozicio, akkor var addig (elkerulendo a buffer overflow vagy hogy mondjam). Pontosabban csak a puffer pozicio felso byte-jat nezi mert ez igy gyorsabb, es nem azon a max 256 byte-on mulik, a lenyeg hogy ne irja felul azt mar ami epp lejatszas alatt van :) Amugy EP64-en nem is menne, pont azert, mert ott minden RAM VRAM, az meg "lassu" ehhez, legalabbis ezen a ~31KHz-en szerintem ...
Valojaban ez a minoseg rovasra is megy, hiszen az IRQ elfogadasa ingadozik attol fuggoen, hogy epp hany orajelciklusik tarto utasitast kell kivarnia a Z80-nak, hogy "szohoz jusson" az IRQ. Gyorsabb es pontosabb lehetne, ha nem kene IRQ, csak ugye mint mondottam az a baj, hogy az SD kartya nem egeszen igy mux, nem "egyenletes" abban, hogy milyen sebeseggel jutok hozza a byte-okhoz ...
-
Nekem ez (mint tök laikusnak) nagyon tetszik! :-) Nem szabad abbahagyni, még bőven kiaknázható fejlődési lehetőségek vannak benne, ahogy látom a hozzászólásokból! :-) GRAT!
-
Na ide is, hatha hasznos: http://ep.lgb.hu/ep128emu-sdext/
Ez most amugy azert jo nekem (marmint bena SD emulacio ep128emu-ban), mert legalabb tudom tesztelni valodi gep nelkul is tobbe-kevesbe, ha nem epp az en SD-vacak-emu kodom bugzik, felteve :)
Van egy-ket szo az oldalon a cucc kiprobalasi lehetosegerol valodi EP-n, es a "modositott" ep128emu-ban is (SD support, pre-alpha verzio), ha megy egyaltalan Windows-on, mert olyanom nincs ;)
-
Valojaban ez a minoseg rovasra is megy, hiszen az IRQ elfogadasa ingadozik attol fuggoen, hogy epp hany orajelciklusik tarto utasitast kell kivarnia a Z80-nak, hogy "szohoz jusson" az IRQ. Gyorsabb es pontosabb lehetne, ha nem kene IRQ, csak ugye mint mondottam az a baj, hogy az SD kartya nem egeszen igy mux, nem "egyenletes" abban, hogy milyen sebeseggel jutok hozza a byte-okhoz ...
Egy lehetséges megoldás 62.5 kHz-es sztereó lejátszásra, de ez csak 10 MHz-es gépen működik:
; DE = 0ACA8h
irqRoutine: ; 13 (IM 1)
ex af, af' ; 17
exx ; 21
outi ; 37
ld c, d ; 41
outi ; 57 / 80
ld a, 03h ; 64
out (0b4h), a ; 75
res 6, h ; 83
ld a, h ; 87
ld ixh, a ; 95
ld c, e ; 99
exx ; 103
ex af, af' ; 107
ei ; 111
ret ; 121 / 160
A puffernek a 2. lapon kell lennie, így működik a RES 6, H (C000h -> 8000h). Az időzítési pontatlanság miatti minőségromlás elkerülhető azzal, ha a 0. csatorna 62.5 kHz-es négyszögjelre van beállítva és a megszakításokat generáló 1-es csatorna úgy van szinkronizálva, hogy az A8/ACh portok írása mindig a kimenet logikai alacsony szintjénél történjen. Megfelelő dither használatával (https://enterpriseforever.com/sound/hanglejatszo-fejlesztese/msg44886/#msg44886) a 6 bites 62.5 kHz-es hangminta hallható minősége jobb lehet a normál 8 bitesnél, bár valódi gépen a rossz minőségű ellenálláslétrás D/A konverter miatt ez nem biztos, hogy ez igazán jól működne. Külső 8 bites DAC (ami szintén javítható ugyanazzal a módszerrel) jobb lenne, de akkor nem használható az időzítési hibát elkerülő négyszögjeles trükk.
-
A masik, hogy sajnos a FAT12 amugy is szukos, ez a Queen szam is 6 mbyte lenne pl, elegge szukos lenne ilyen ~32M max meretu particiokon tarolgatni zeneket ... FAT16-on mar elgondolkodna az ember jobban :-D
Miután úgyis direktben olvassa a kártyát, innentől tök mindegy, hogy az EXDOS éppen mit tud :-)
Én a HxC-hez (https://enterpriseforever.com/hardware/exdos-with-hxc-floppy-emulator-works-perfect/msg34072/#msg34072) kifejlesztett fájlválasztómmal párosítanám a cuccot, annak pont az a lényege, hogy FAT32 partición listázza a fájlokat (hosszú fájlneveket is).