Enterprise Forever

:HUN => Programozás => Topic started by: lgb on 2016.February.14. 00:12:06

Title: SD audio player
Post 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
Title: Re:SD audio player
Post by: endi on 2016.February.14. 00:17:48
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
Title: Re:SD audio player
Post by: Z80System on 2016.February.14. 01:04:39
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 ...
Title: Re:SD audio player
Post by: Povi on 2016.February.14. 01:13:41
végre az alapgépem (128kB RAM) is le tud játszani pár másodpercnél is hosszabb digi zenét... :-)
Title: Re:SD audio player
Post by: Zozosoft on 2016.February.14. 08:17:34
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?
Title: Re:SD audio player
Post by: Povi on 2016.February.14. 09:38:55
nem nézted a videót, amit lgb rakott ki tegnap éjjel?
Title: Re:SD audio player
Post by: lgb on 2016.February.14. 13:26:30
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.
Title: Re:SD audio player
Post by: Zozosoft on 2016.February.14. 13:29:31
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?
Title: Re:SD audio player
Post by: lgb on 2016.February.14. 13:38:38
É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
Title: Re:SD audio player
Post by: Z80System on 2016.February.14. 14:50:32
Quote
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 ?
Title: Re:SD audio player
Post by: Zozosoft on 2016.February.14. 14:58:16
És mindez miért van off topicban, miért nincs saját rendes topicja? :)
Title: Re:SD audio player
Post by: lgb on 2016.February.14. 15:22:55
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 :)
Title: Re:SD audio player
Post by: lgb on 2016.February.14. 15:38:01
É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 :)
Title: Re: SD audio player
Post by: Zozosoft on 2016.February.14. 16:34:21
Következő kérdés: honnan tölthető le?
Title: Re: SD audio player
Post by: Z80System on 2016.February.14. 16:45:42
Quote
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 ...
Title: Re: SD audio player
Post by: lgb on 2016.February.14. 16:52:14
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.
Title: Re: SD audio player
Post by: Zozosoft on 2016.February.14. 16:57:20
És 10MHz-es Z80 esetén? :-)
Title: Re: SD audio player
Post by: endi on 2016.February.14. 17:17:15
mi viszi a cpu időt a "direkt" sd olvasásnál?
Title: Re:SD audio player
Post by: ergoGnomik on 2016.February.14. 17:28:46
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
Title: Re: SD audio player
Post by: lgb on 2016.February.14. 17:31:13
É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 :)
Title: Re: SD audio player
Post by: lgb on 2016.February.14. 17:33:57
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 ...).
Title: Re: SD audio player
Post by: lgb on 2016.February.14. 17:44:13
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.
Title: Re: SD audio player
Post by: Z80System on 2016.February.14. 18:40:57
Quote
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 ...
Title: Re: SD audio player
Post by: Z80System on 2016.February.14. 18:47:07
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.)
Title: Re: SD audio player
Post by: Zozosoft on 2016.February.14. 18:47:41
Szektor másolás közben él az IRQ?
Title: Re: SD audio player
Post by: Z80System on 2016.February.14. 18:48:18
Valójában konkrétan erre emlékeztem (ez derengett) :) :

https://www.youtube.com/watch?v=XL9nGm9xVp0
Title: Re: SD audio player
Post by: Z80System on 2016.February.14. 18:49:49
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" ... :)
Title: Re: SD audio player
Post by: Zozosoft on 2016.February.14. 18:53:59
Ezeknél szerintem csak egy lpt sor van, és ahogy fut a kép lesz teljes képernyős.
Title: Re: SD audio player
Post by: Z80System on 2016.February.14. 18:55:40
Quote
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 ...
Title: Re: SD audio player
Post by: lgb on 2016.February.14. 20:59:00
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 ...
Title: Re: SD audio player
Post by: Ep128 on 2016.February.14. 23:11:18
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!
Title: Re: SD audio player
Post by: lgb on 2016.February.22. 01:28:02
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 ;)
Title: Re: SD audio player
Post by: IstvanV on 2016.November.26. 11:55:38
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:

Code: ZiLOG Z80 Assembler
  1. ; DE = 0ACA8h
  2.  
  3. irqRoutine:                             ; 13 (IM 1)
  4.         ex    af, af'                   ; 17
  5.         exx                             ; 21
  6.         outi                            ; 37
  7.         ld    c, d                      ; 41
  8.         outi                            ; 57 / 80
  9.         ld    a, 03h                    ; 64
  10.         out   (0b4h), a                 ; 75
  11.         res   6, h                      ; 83
  12.         ld    a, h                      ; 87
  13.         ld    ixh, a                    ; 95
  14.         ld    c, e                      ; 99
  15.         exx                             ; 103
  16.         ex    af, af'                   ; 107
  17.         ei                              ; 111
  18.         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.
Title: Re:SD audio player
Post by: Zozosoft on 2016.November.27. 17:52:22
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).