Enterprise Forever

:HUN => SOUND: => Topic started by: IstvanV on 2009.January.13. 12:50:55

Title: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.January.13. 12:50:55
Eszembe jutott még, hogy lehetne hang is
Ha video és hang egyelőre nem is lenne egyszerre, csak hanghoz lehetne külön konvertert és lejátszót készíteni.
Title: Hanglejátszó fejlesztése
Post by: Attus on 2009.January.13. 13:21:51
Ha video és hang egyelõre nem is lenne egyszerre, csak hanghoz lehetne külön konvertert és lejátszót készíteni.

Comment: Azok a fránya realitások.  ;-)
Title: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.January.13. 15:58:39
Ha video és hang egyelõre nem is lenne egyszerre, csak hanghoz lehetne külön konvertert és lejátszót készíteni.
Ezeknek a programoknak (http://www.ep128.hu/Ep_Music.htm) a részeit lehetne valahogy felhasználni hanglejátszásra szerintem. Gondolom, alapvetõ probléma, hogy a forrásuk nincs meg, nem tudom, visszafejtéssel mi a helyzet.
Ami még talán reálisan elképzelhetõ, Zozo MBP-jét belegyömöszölni a lejátszóba.
A Wav sample playert gondolom, vissza kéne fejteni. Konverter talán nem gond, pl. a Cool Edittel lehet menteni 8 bites 8000 Hz formátumban is akár wavot.
Title: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.January.15. 14:00:30
Ha video és hang egyelőre nem is lenne egyszerre, csak hanghoz lehetne külön konvertert és lejátszót készíteni.
Itt egy próbálkozás Nyuzga Exolon zenéjének (illetve csak az elejének, mert a hossza 13 másodperc :)) EP-re való konverziójára. Valószínűleg a konverzió minőségén még lehetne javítani, és a konvertálásban és a lejátszásban is lehetnek hibák. A formátum 15625 Hz mono 4 bites ADPCM, amelyet a lejátszó 7 bitre dekódol (2 csatorna használatával próbálja a felbontást 7 bitre növelni, ez nem tudom, hogy igazi gépen mennyire pontos eredményt ad).
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.January.15. 20:32:24
Ezeknek a programoknak (http://www.ep128.hu/Ep_Music.htm) a részeit lehetne valahogy felhasználni hanglejátszásra szerintem. Gondolom, alapvetõ probléma, hogy a forrásuk nincs meg, nem tudom, visszafejtéssel mi a helyzet.
Igazából csak a DTM meg MBT formátumokat kéne visszafejteni, és egy új lejátszót írni.

Ez én elképzelésem egy "álom" lejátszóról:
- tudja az MBT, DTM formátumokat, MOD elõzetes konvertálás nélkül, egyszerûbb WAV fájlok
- plusz amilyen szuper formátumot ki fog találni nekünk István :-)
- lejátszás elõtt mérje fel a gép erejét (órajel), és ennek megfelelõen állítsa be a sebességet, turbós gépen bonyolultabb/nagyobb mintavételû fájlok lejátszása
- memóriabõvítés használata, nagy fájl és kevés memória esetén utántöltés (ez nyilván csak WAV és hasonlók esetén lehetséges)
- valami jópofa kivezérlés jelzõ mint DTM Playerben
- szokásos INI fájl, FILE használat
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2009.January.15. 20:38:12
Spectrumos lejátszókat érdemes megvizsgálni. Le tudnak játszani ilyen szabvány formátumokat is, de amúgy bármit, mivel teljes z80 szimuláció van bennük. Lásd AY Player. Tehát sok zene simán a játékban lévõ z80 kód.. :)
Title: Re: Hanglejátszó fejlesztése
Post by: Attus on 2009.January.15. 23:35:45
Gondolkodom...
Sound Blaster nyelvre fordítva: DSP, Wav tábla, OPL3?
tiszta OPL3 :
A DAVE hanggenerátorait használó szintetizátort tudtommal  nem sokat írtak eddig. Basic nyelven írtak demó szerûeket, meg nekem volt egy "kezdetleges" kísérleti szakaszom. Lásd a Delivery átiratomat, meg a krixkraxot. Az enyim editor nélküli, MON alatt pötyögtem be a zenei hangokat, Gyányi mester is alkotott egyet. Az õ musicboxja már fejlettebb editorral rendelkezik, de az editorja zenáhez értõ emberek számára is igen nehézkes. Én, kottát ismerõ ember lévén egy kotta alapú editort hiányoltam nála, az én kis progimnak olyan szép kotta író editort álmodtam, de  ez csak álom maradt.  :oops:
Wav táblás szintetizátor :
Egy alkotásról tudok, ez a rockdigi. Dob mániás emberek alkották, akik számára a jó dob a legfontosabb a "zenében". Eltárolt hanghullám mintákból állítja össze a zenét, gyakorlatilag a DSP-t, DAVE -nál a digitalizáló portot használja, Proci terhelés már tetemes, mert gyakorlatilag õ rángatja a hangszórót, mint a Spectrum, de legalább nem 1 bites, hanem 8 bites tartományban lökdösve. Elõnye, hogy nem csak négyszögjelû lehet a hang, és nem memóriazabáló a zene leírója.
tiszta DSP :
Wav lejátszás, nem szintetizátor, hanem "magnó". Processzor lökdösi a hangszórót a memóriában elhelyezkedõ "kaotikus" folytonos számsor alapján, amiket kiküld a megfelelõ portra, azonos idõpontokban, alig marad másra ideje. Énekszó is lehet akár, memóriafaló processzorzabáló buta "lejátszó". Lásd A stúdió demók, Small demo fekete képei alatt a nyúlfarknyi "zenék" és "dalok".
Szerintem a Wav táblás és az OPL3 szerû elvet kellene alkalmazni egy jó MOD szerû lejátszóhoz és szerkesztõhöz.
A "filmekhez" meg csak a wav elv használható, de gépünket én erre nem látom alkalmasnak, Egy régi Little Richard (2-3 perc) rock 'n roll szám DSP-n való visszajátszása fekete képernyõvel emulátoron biztos megoldható, mivel ott nincs memória korlát, vinyó korlát, Z80 sebesség korlát, de ez már nem enterprise, hanem emulátor program lesz.
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.January.15. 23:59:19
Wav táblás szintetizátor :
Egy alkotásról tudok, ez a rockdigi.
A Soundtracker 2.1 és 3.0 is ilyen? (Elõbbi csak 2 digitális hangmintás csatornát kezel, utóbbit nem nagyon ismerem.)

Volt egyszer egy program, amibe kotta formában lehetett beírni a zenét (basic)...

Tényleg nagyon bonyolult pl. a Rockdigibe is beírni a hangokat "nem kotta" formátumban. Héder Józsi nem tudom, hogyan csinálta, de gyanítom, valami PC-s vagy amigás programmal szerkesztette.

Nagyon jó lett egyébként az Exolon ADPCM! Próbálta valaki igazi gépen?
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.January.16. 00:00:13
8 bites tartományban lökdösve
Ez biztos? A Dave az 6 bites. Vagy többcsatornával trükközve növelték a bit számot?

Quote
Small demo fekete képei alatt a nyúlfarknyi "zenék" és "dalok".
Azért ott van a nemrég a másik topicban tárgyalt Mushroom is, ami nem is nyúlfarknyi. Az eredeti fájl majd 300K, ez lett besûrítve a 128K-ba, miközben nem csak fekete képernyõ van.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.January.16. 00:10:16
A DAVE hanggenerátorait használó szintetizátort tudtommal  nem sokat írtak eddig.
Egy ilyen izgalmas lenne, de én tök hülye vagyok a zenéhez, azt meg pláne nem értem, hogy mit jelent a DAVE leírásban a gyûrûmoduláció meg mittoménmilyen szürõk :(
Kíváncsi lennék, hogy egy zenész mit tudna kihozni ebbõl a "hangszerbõl"! Azt tudjuk, hogy az AY teljes leutánzásához kevés a tudása :-( de vajon ami benne van más, azzal lehetne-e más, jobb hangzást elõállítani?
Ott van pl a Sztereo zene demo, amiben 3 szám van benne, abból különösen a Beatles-es tetszik. És ez a demo csak az EXOS SOUND csatornát használja.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2009.January.16. 00:27:21
Ha jól emlékszem az AY nem tud többet mint a DAVE, csak bizonyos dolgokban más.
Sima 1 szólamú digi hang lejátszás nem terheli annyira a procit... hiszen ügyes emberek még 4 szólamot is tudnak úgy hogy alatta játék megy vagy demó (Swap, Small demo stb.). Sõt az én Book of Life játékom alatt a hangeffektek is digi-k, mondjuk valami nagyon alacsony frekin megy...

Sima 1 szólamú wav lejátszás esetén realtime kitömörítés is mehetne szerintem valami egyszerû tömörítéssel. Asszem az ADPCM hang tömörítés valami olyasmi hogy a byte sorozatot úgy tömöríti hogy 4 biten csak változásokat tárol. Ezt bírná az EP is szerintem.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.January.16. 00:46:55
Ez én elképzelésem egy "álom" lejátszóról:
- tudja az MBT, DTM formátumokat, MOD elõzetes konvertálás nélkül, egyszerûbb WAV fájlok
Nekem egyelőre megfelel egyszerű WAV-szerű lejátszás is :)
Quote
- lejátszás elõtt mérje fel a gép erejét (órajel), és ennek megfelelõen állítsa be a sebességet, turbós gépen bonyolultabb/nagyobb mintavételû fájlok lejátszása
Erre én is gondoltam, bár először még normál 4 MHz-es gépre kellene működő lejátszót készíteni.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.January.16. 00:54:34
Ez biztos? A Dave az 6 bites. Vagy többcsatornával trükközve növelték a bit számot?
Ha az egyes hangszereket külön DAVE portokon játszották le (nagy frekvenciájú négyszögjelet beállítva), akkor tulajdonképpen igen, három csatornával pédául elvileg 190 szint lehetséges. De a normál "DAC" mód (A7h port 3. és 4. bit beállítva) a hangminták szoftveres keverésével az valóban csak 6 bites.
Quote
Azért ott van a nemrég a másik topicban tárgyalt Mushroom is, ami nem is nyúlfarknyi. Az eredeti fájl majd 300K, ez lett besûrítve a 128K-ba, miközben nem csak fekete képernyõ van.
Természetesen nyúlfarknyi jó minőségű felvétel helyett mindig lehet hosszabb és kevésbé jó minőségű is :)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.January.16. 00:56:59
Sima 1 szólamú wav lejátszás esetén realtime kitömörítés is mehetne szerintem valami egyszerû tömörítéssel. Asszem az ADPCM hang tömörítés valami olyasmi hogy a byte sorozatot úgy tömöríti hogy 4 biten csak változásokat tárol. Ezt bírná az EP is szerintem.
Amint az a fenti Exolon példánál is látható (illetve hallható) :) 4 bit helyett lehet kevesebb is, ami a "Mushroom"-hoz hasonló felvételeknél, ahol a lejátszható időtartam fontosabb, mint a minőség, hasznos lehet.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.January.16. 01:34:11
Azért ott van a nemrég a másik topicban tárgyalt Mushroom is, ami nem is nyúlfarknyi. Az eredeti fájl majd 300K, ez lett besûrítve a 128K-ba, miközben nem csak fekete képernyõ van.
Ezt 8929 (pontosabban 250000/28) Hz-es mintavételezési frekvenciával és 4 bites felbontással oldották meg, azonban ha egy hangminta azonos az előzővel, akkor az csak 1, egyébként 5 bitet használ fel. A 4 bites hangmintákat egy táblázat konvertálja 6 bitre - nem egészen lineárisan - és ez a táblázat nem változik lejátszás közben.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.19. 18:36:37
Ez a hang konvertáló/lejátszó program érdekel még valakit (tehát érdemes-e fejleszteni) ? :)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.19. 18:41:54
Ez a hang konvertáló/lejátszó program érdekel még valakit (tehát érdemes-e fejleszteni) ? :)
Határozottan igen a válasz! :-)
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2009.February.19. 19:49:51
Ez a hang konvertáló/lejátszó program érdekel még valakit (tehát érdemes-e fejleszteni) ? :)

Csatlakozom. :D
Nemtom megoldható lenne-e, hogy eredeti mod file-ok is lejátszhatók legyenek, vagy új MOD-okat konvertálni DTM-re, és 64Kb-nál nagyobbakat is lejűtszani?
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.22. 09:20:40
Én látom rosszul, vagy tényleg eltûnt innen István egy hozzászólása, benne egy kipróbálandó cuccal?!
Most raktam össze a valódi gépet, hogy próbáljam, erre nem találom sehol :-(
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2009.February.22. 10:05:42
Én látom rosszul, vagy tényleg eltûnt innen István egy hozzászólása, benne egy kipróbálandó cuccal?!
Most raktam össze a valódi gépet, hogy próbáljam, erre nem találom sehol :-(
És valóban, tegnap még itt volt :( , le is töltöttem. :D
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.February.22. 12:41:45
Esetleg talált benne valami hibát...? Bár akkor azt írni szokta és / vagy javítani... Remélem, visszakerül!
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.24. 16:36:17
Én látom rosszul, vagy tényleg eltûnt innen István egy hozzászólása, benne egy kipróbálandó cuccal?!
Most raktam össze a valódi gépet, hogy próbáljam, erre nem találom sehol :-(
Itt egy újabb verzió, amely már konvertert is tartalmaz:
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.24. 22:27:17
Még két konvertált file (Endi zenéiből :)):
[attachurl=#]
[attachurl=#]
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.February.25. 11:00:18
Konvertáltam én is néhány filét. A hangerõt mondjuk jobban kellett volna normalizálnom elõtte.

Külön poén, hogy ha az egész file elfér a memóriában, végtelenítve játssza.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.25. 21:41:09
Itt egy újabb verzió, amely már konvertert is tartalmaz:
Nagyon jó!!!
Viszont találtam egy ici-pici problémát: valódi EP-n nem szól!  :oops:

Geco jóvoltából meg tudtam nézni az eltûnt hozzászólásban lévõ próbaverziót, az még szólt a valódi gépen is, turbó bemérés is jól mûködik.
Title: Re: Hanglejátszó fejlesztése
Post by: Attus on 2009.February.25. 21:44:42
Nagyon jó!!!
Viszont találtam egy ici-pici problémát: valódi EP-n nem szól!  :oops:

Geco jóvoltából meg tudtam nézni az eltûnt hozzászólásban lévõ próbaverziót, az még szólt a valódi gépen is, turbó bemérés is jól mûködik.
Jujj!
Ez emu probléma is akkor!  :shock:
Mit fog szólni hozzá István??  :smt017
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.February.25. 22:05:51
Ez emu probléma is akkor!  :shock:
Sztem nem biztos, hogy emu probléma. Az nem lehet, hogy maga a program nem EP-re, hanem EP128Emu platformra íródott?

UI: EP32 emun is csak bizonyos frekvencia szól, kb. "suttog".
UI2: Ha EP32-n kétszer van egymás után betöltve a sndplay bõvítés (és így a :HELP-ben is kétszer írja ki), akkor szól rendesen.
UI3: Bocsi, most csak egyszer töltöttem be a bõvítést, mégis szól valamiért. Kicsit piszkálgattam a buffer méretet a dave (sound) options menüpontban, 100ms volt eredetileg, így nem szólt. Utána átállítottam 250-re (és véletlenül betöltöttem mégegyszer a sndplay-t), így már szólt. Visszaállítottam 100ms-re, most is szól...
Title: Re: Hanglejátszó fejlesztése
Post by: Attus on 2009.February.25. 22:14:44
Sztem nem biztos, hogy emu probléma. Az nem lehet, hogy maga a program nem EP-re, hanem EP128Emu platformra íródott?
Nem hiszem, hogy az ep128emu z80 nyelven megszólítható lenne. :smt090
Õ csak monoton reagál a z80 utasításokra. Ezek szerint nem úgy reagál, mint a valódi enterprise.
 :shock:
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.25. 22:24:23
Nagyon jó!!!
Viszont találtam egy ici-pici problémát: valódi EP-n nem szól!  :oops:
Ezt valószínűleg az a DAVE trükk okozza, amely a hanggenerátorok kimenetét fix '1' értékre próbálja állítani. Így ugyanis nem lenne ultrahang frekvenciájú négyszögjel a kimeneten, és hangosabb is lenne. Úgy látszik, nem működik igazi gépen :( Talán valahogy ki lehet javítani, de addig egyelőre marad az eredeti, nagy frekvenciájú négyszögjelet használó módszer. Ehhez az 1628. sornál az 'initDAC' rutint törölni kell, és lecserélni egy egyszerűbb változatra, amely az A0h-A5h portokat 0-ra, az A7h portot pedig 60h-ra állítja. Az 530. sorban is van egy 65h, amelyet 60h-ra kell átírni. A módosított lejátszó lefordítva:
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.25. 22:31:44
Még egy lejátszó probléma, amit még nem sikerült javítani: kilépéskor néha lefagy; ez a 385. sornál található EXOS reset hívás közben szokott előfordulni  :???:
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.February.25. 22:47:28
Még egy lejátszó probléma, amit még nem sikerült javítani: kilépéskor néha lefagy; ez a 385. sornál található EXOS reset hívás közben szokott elõfordulni  :???:
Ez a legutóbbi verziónál van? Nálam még egyszer sem fagyott le, min. 20-szor futtattam (nem igazi EP-n).
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.25. 23:07:31
Rövid leírás a konverter paramétereiről:
-h -help --help - Ezek a program használatáról írnak ki információt (angolul).
-f N - Hangminta formátum; 2, 3, 4, vagy 7 bitre lehet konvertálni. Természetesen a nagyobb érték jobb minőséget és nagyobb file méretet jelent :) A 7 bites formátum egyszerű tömörítetlen PCM, a többi nagyon kezdetleges veszteséges tömörítés, amely valamivel jobb minőségű, mint az azonos méretű PCM formátum. Ezen valószínűleg még lehetne javítani a későbbi verziókban, más formátummal, vagy a meglevő formátumot jobban optimalizálva.
-r N - mintavételezési frekvencia Hz-ben. Bár tetszőleges értéket meg lehet adni, a lejátszáskor csak azok lesznek pontosak, amelyeknek 250000 Hz vagy 166667 Hz egész számú többszöröse. Ezen kívül 4 MHz-es gépen a lejátszó a formátumtól függően legfeljebb 15000-18000 Hz frekvenciáig működik; ha túl nagy a frekvencia, akkor akadozik (illetve ha nagyon nagy, akkor esetleg lefagy :)).
-b N - blokk méret, 8, 16, 32, 64, 128, vagy 256 hangminta lehet. A 7 bites formátumnál nincs nagy jelentősége, a tömörítetteknél viszont a kisebb méret jobb minőséget eredményez, igaz, nagyobb file méret (egy hangminta mérete átlagosan 8 / N bittel lesz nagyobb, tehát például az -f 3 -b 32 3.25 bites formátumot jelent) és lejátszásnál nagyobb CPU használat mellett.
-s N - hangerő. Az alapértelmezett beállítás 1.0, ennél nagyobb és kisebb értéket is meg lehet adni.
-c N - több csatornás bemeneti file esetén ezt a csatornát konvertálja (sztereó file-nál például az N=0 a bal, az N=1 pedig a jobb csatorna). Ha negatív, akkor az összes csatorna átlagát számítja ki.

Az alapértelmezés: -f 4 -r 12500 -b 32 -s 1.0 -c -1

A bemeneti file bármilyen libsndfile által támogatott formátum lehet, bár ezek közül valószínűleg csak a WAV-nak van gyakorlati jelentősége. :) A mintavételezési frekvenciát a program automatikusan konvertálja, de lehetőleg ne legyen kisebb az -r paraméterrel megadott értéknél, mert akkor nem működik megfelelően (és nagyobbra konvertálni egyébként sincs sok értelme).
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.25. 23:15:03
Ez a legutóbbi verziónál van? Nálam még egyszer sem fagyott le, min. 20-szor futtattam (nem igazi EP-n).
Az sndplay.ext-nél fordul elő (az igazi gépen a DAVE kompatibilitást javító előbbi változtatásnak ennél a hibánál nincs jelentősége). De csak néha, lehet, hogy sokszor kell használni, mielőtt lefagy, hasonlóan például az ep128emu 2.0.5 topicban említett, .com file-ok betöltésénél előforduló EXOS fagyáshoz :shock:
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.26. 19:52:32
A módosított lejátszó lefordítva:
Így már mindjárt jobb :-)

Kisebb hiba: lejátszás után ott marad a kijelzõ csík a státusz sorban.
Ezt a csíkot egyébként lehetne betöltés alatt folyamatjelzõnek is használni, több megás fájloknál már vinyóról is eltart egy darabig.
Extra igény: lehet majd kicsit színesebb, mint a DTM lejátszóban? :-)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.26. 20:40:09
A teljes csomag a javított lejátszóval (ezúttal .com és .rom változatot is készítettem):

Kár, hogy így nagyon halk, de legalább nem csak emulátoron működik. :) Kis mértékben gyorsabb is lett, mert nem nullázza a hangerő regiszterekbe írt értékek felső bitjetit (7 ciklus / hangminta).

A "Mushroom" példákat ez a csomag már nem tartalmazza, de itt vannak külön: :)
[attachurl=#]
[attachurl=#]
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.26. 20:43:34
A "Mushroom" példákat ez a csomag már nem tartalmazza, de itt vannak külön: :)
Tényleg, ezek milyen alapanyagból lettek konvertálva?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.26. 20:48:28
Tényleg, ezek milyen alapanyagból lettek konvertálva?
A YouTube videóból készültek. Az egyik 10417 Hz/2.25 bit, a másik pedig 16667 Hz/3.25 bit formátumú.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.26. 20:55:24
Kisebb hiba: lejátszás után ott marad a kijelzõ csík a státusz sorban.
Nálam ilyen még nem fordult elő (csak az időnkénti rejtélyes fagyás kilépéskor). Talán a ROM konfigurációtól függ ?
Quote
Ezt a csíkot egyébként lehetne betöltés alatt folyamatjelzõnek is használni, több megás fájloknál már vinyóról is eltart egy darabig.
Ez megoldható. Vagy minden szegmens után eggyel növeli a kijelzett szintet (és a negyvenedik után újra nulláról kezdi) - ez egyszerűbb, vagy kiszámítja, hogy hány % adatot olvasott be.
Quote
Extra igény: lehet majd kicsit színesebb, mint a DTM lejátszóban? :-)
Ezt nem egészen értem. Több információt kellene megjeleníteni, vagy egyszerűen csak a csík használjon több színt (pl. 16 színű módban) ?
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.26. 21:02:53
Nálam ilyen még nem fordult elõ
FILE-n keresztül töltögetsz?
Quote
vagy kiszámítja, hogy hány % adatot olvasott be.
Ez a szebb :-)
[/quote]
Ezt nem egészen értem. Több információt kellene megjeleníteni, vagy egyszerûen csak a csík használjon több színt (pl. 16 színû módban) ?
[/quote]
Több szín, mint a DTM-nél. (http://www.ep128.hu/Pic/DTM_player.gif)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.26. 23:20:08
FILE-n keresztül töltögetsz?
Eddig nem; a FILE használatakor valóban előjön a probléma :oops: Bár a program elmenti és visszaállítja a státuszsort, egy hiba miatt a kivezérlésjelzőt is elmenti, felülírva az eredeti adatot; szerencsére ezt könnyen ki lehet javítani.
Quote
Több szín, mint a DTM-nél.
Két lehetséges példa több színre (bár lehet, hogy ezek túl egyszerűek a DTM-hez képest :)):
[attachthumb=#]
[attachthumb=#]
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.26. 23:46:39
Két lehetséges példa több színre
Elsõ pont olyan, mint egy 80-as évekbeli modern erõsítõn a ledek, szóval tök jó retro! :-)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.27. 16:10:15
Elsõ pont olyan, mint egy 80-as évekbeli modern erõsítõn a ledek, szóval tök jó retro! :-)
Tehát akkor legyen ilyen ?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.27. 16:16:56
Kisebb hiba: lejátszás után ott marad a kijelzõ csík a státusz sorban.
Javítva :)
Quote
Ezt a csíkot egyébként lehetne betöltés alatt folyamatjelzõnek is használni, több megás fájloknál már vinyóról is eltart egy darabig.
Kész van, bár kisebb hibája, hogy nem a file, hanem a memória százalékát jelzi ki, tehát például 1MB szabad memória és 256K méretű file esetén a csík csak a negyedéig megy. Ilyen lett:
[attachthumb=#]

További teendők: hibák keresése és javítása a lejátszóban, és a konverter minőségének javítása.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.27. 17:15:55
Tehát akkor legyen ilyen ?
Én erre szavazok. Többiek?
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.February.27. 18:49:29
Nekem is az tetszik jobban, ugyanazért, amit Zozo is írt! :-) Tök jó retro feeling!  ;-)
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.February.27. 19:43:31
Én erre szavazok. Többiek?
Ez jó lesz. Maradhat.

(Errõl eszembe jutott egy vicc: Bemegyek a boltba, kérek 10 deka parízert. Az eladó:
- 12 deka. Maradhat?
- Hát jó, maradhat - mondom szomorúan, és kijövök a boltból.)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.27. 23:58:28
Az új verzió:
[attachurl=#]
A konvertert ezúttal Linuxra is lefordítottam.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.February.28. 14:48:20
Az új verzió:
Szépen mûködik az új lejátszó.
Az a konvertáláskor megadott hangerõtõl függ, hogy mennyire "szaladgál" a csík?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.February.28. 19:42:45
Az a konvertáláskor megadott hangerõtõl függ, hogy mennyire "szaladgál" a csík?
Igen, és természetesen az eredeti file hangerejétől is. Azonban a kivezérlésjelző csak minden 256. hangmintát jelenít meg, ezért nem igazán pontos.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.05. 00:09:49
Bár már biztosan mindenki unja ezt a témát, de itt egy újabb verzió :) Ez csak a konverteren változtat: a -d paraméterrel dekódolni lehet (16 bites mono WAV formátumba) korábban konvertált file-okat, az -O és -O2 pedig elvileg javítja a konvertálás minőségét, bár általában csak nagyon kis mértékben, és ezeknek a használatakor sokkal lassabb lehet a program. Kisebb javulás egyébként az alapértelmezett beállításokkal is van az előző verzióhoz képest.

[attachurl=#]
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.05. 09:50:04
a -d paraméterrel dekódolni lehet (16 bites mono WAV formátumba) korábban konvertált file-okat
Akkor ha jól értem EP-re is csak monoban konvertálódik?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.05. 11:03:53
Akkor ha jól értem EP-re is csak monoban konvertálódik?
Igen :oops: A sztereó konverziót is meg lehetne oldani, de akkor természetesen azonos beállítások mellett a file mérete kb. a kétszeresére nőne, illetve a legnagyobb használható mintavételezési frekvencia csökkenne (ha nem is a felére, mert például a megszakításnál van kb. 60 ciklus/hangminta, ami nem változna).
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.05. 11:25:56
Igen :oops: A sztereó konverziót is meg lehetne oldani
Léci-léci-léci  :ds_icon_cheesygrin:
Quote
de akkor természetesen azonos beállítások mellett a file mérete kb. a kétszeresére nõne, illetve a legnagyobb használható mintavételezési frekvencia csökkenne (ha nem is a felére, mert például a megszakításnál van kb. 60 ciklus/hangminta, ami nem változna).
Igen ez egyértelmû. Ráadásul még egy kijelzõ csík is kéne :-)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.05. 15:14:07
Valójában a megszakításnál még kisebb a különbség, mert eddig is "sztereó" hang volt, csak mindkét csatornán ugyanaz (bár a lejátszót úgy is lehetett fordítani, hogy csak a bal oldalon legyen hang) :). Tehát csak a sárgával jelölt utasításokkal lett több kód:

irqRoutine:
        ex    af, af'
        ld    a, (iy - 128)
        rrca
        out   (0a8h), a
        adc   a, 0
        out   (0aah), a
        ld    a, (iy)
        rrca
        out   (0ach), a
        adc   a, 0
        out   (0aeh), a
        ld    a, 3
        inc   iyl
        jr    z, .l1
        out   (0b4h), a
        ex    af, af'
        ei
        ret
.l1:    inc   iyh
        ld    iyl, 080h
        out   (0b4h), a
        and   iyh
        or    high audioBuffer
        ld    iyh, a
        ex    af, af'
        ei
        ret


Azonban a file dekódolásnál gyakorlatilag pontosan kétszeres lassulás lenne. Ezen kívül több részt külön meg kellene írni sztereó lejátszáshoz is, tehát valamivel kevesebb hely maradna a file betöltésére. A blokk méret (-b) 2 csatorna esetén 256 helyett legfeljebb 128 lehetne.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.08. 00:10:38
Konvertálni már lehet sztereó formátumba is, bár lejátszani egyelőre még nem lehet: :) :oops:
[attachurl=#]
A sztereó konverzióhoz a '-c 2' paramétert kell használni (ez egyébként kettőnél több csatornával is működik, de annak sok értelme nincs, mert EP-n csak sztereó hang lehetséges), és ilyenkor a blokk méret ne legyen 128-nál nagyobb, mert a lejátszó két csatornánál csak ennyit fog támogatni. További újdonság még az egyszerű tömörítetlen 6 bites formátum (-f 6), amelyet szintén nem lehet még lejátszani, hanem csak a -d paraméterrel dekódolni WAV file-ba.
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.March.08. 12:19:10
Azért ez így is nagy eredmény már! Ha pedig majd le is lehet játszani...  ;-) :)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.09. 00:17:23
Ez a verzió már támogatja a sztereó és a 6 bites file-okat is:
[attachurl=#]
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.10. 15:30:35
Nem túl aktív mostanában a fórum :)
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.March.10. 16:20:08
Pedig szerintem sokan vagyunk muzikálisak.  :) (9 ember le is töltötte a programot. :) )
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.10. 18:00:23
Pedig szerintem sokan vagyunk muzikálisak.  :) (9 ember le is töltötte a programot. :) )
Nem csak erre a topicra értettem :) Érdekes egyébként, hogy a lejátszót többen töltötték le, mint a konvertert, pedig az új verziónak csak az új konverterrel használható formátumok támogatása az előnye :)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.10. 20:54:10
A bemeneti file bármilyen libsndfile által támogatott formátum lehet, bár ezek közül valószínûleg csak a WAV-nak van gyakorlati jelentõsége. :)
Meg lehetne oldani, hogy MP3-at is egyen?
És esetleg olyat lehetne, hogy megadni idõtartományt, hogy a fájl melyik részét konvertálja? Pl, hogy 2 perc 3 másodperctõl 10 másodpercet (esetleg tized másodpercre is). Így akinek nincs kéznél hangszerkesztõ, az is ki tudna vágni egy neki tetszõ, EP-be férõ részletet.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.10. 22:57:27
Meg lehetne oldani, hogy MP3-at is egyen?
A libsndfile nem támogatja az MP3 formátumot a szabadalmak miatt. A FLAC és Vorbis (.ogg) formátumot viszont elvileg tudja olvasni, csak azokat nem fordítottam a libsndfile-1.dll file-ba. :oops: De ha fontos az MP3 támogatás, akkor azt a libmp3lame segítségével meg lehet oldani.
Quote
És esetleg olyat lehetne, hogy megadni idõtartományt, hogy a fájl melyik részét konvertálja? Pl, hogy 2 perc 3 másodperctõl 10 másodpercet (esetleg tized másodpercre is). Így akinek nincs kéznél hangszerkesztõ, az is ki tudna vágni egy neki tetszõ, EP-be férõ részletet.
Ez természetesen könnyen megoldható. Bár hangszerkesztő nélkül kissé nehézkes beállítani, hogy pontosan hol kezdődjön, és milyen hosszú legyen a konvertálandó rész :)
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.March.10. 23:24:29
Ha kicsit komolyabban vesszük, akkor a FLAC szerintem fontos lenne... Az MP3 -al ellentétben az legalább minõség. :)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.11. 09:29:43
De ha fontos az MP3 támogatás, akkor azt a libmp3lame segítségével meg lehet oldani.
Jó lenne, szerintem manapság a hangfájlok 99%-ban MP3-ban találhatóak :-)
Quote
Ez természetesen könnyen megoldható. Bár hangszerkesztõ nélkül kissé nehézkes beállítani, hogy pontosan hol kezdõdjön, és milyen hosszú legyen a konvertálandó rész :)
Nyilván nem tökéletes, de egy kezdõ felhasználónak az a legegyszerûbb, hogy megnézi a médiapléjerében, hogy mit mutat a számláló, amikor kezdõdik az a jó rész a kedvenc zenéjében :-)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.11. 22:38:19
:-)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.11. 22:38:58
Lehet, hogy én voltam figyelmetlen... a -O paraméter mit is csinál?
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.11. 23:50:04
Ezt már ismerjük régrõl, de azért sztereóban csak jobb :-)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.12. 00:04:04
Jó lenne, szerintem manapság a hangfájlok 99%-ban MP3-ban találhatóak :-)Nyilván nem tökéletes, de egy kezdõ felhasználónak az a legegyszerûbb, hogy megnézi a médiapléjerében, hogy mit mutat a számláló, amikor kezdõdik az a jó rész a kedvenc zenéjében :-)
OK, akkor a következő verzióban lesznek ezek is.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.12. 00:13:28
Lehet, hogy én voltam figyelmetlen... a -O paraméter mit is csinál?
Kis mértékben csökkenti a 2, 3, és 4 bites formátumok átlagos zaj szintjét (amelyet a konverter zárójelben kiír), de lassabb. Az -O2 pedig tovább javít egy keveset, és még lassabb. :) 6 és 7 bites módban nincs semmilyen hatása. A blokk méret (-b) szintén elsősorban a 2, 3, és 4 bites file-oknál jelentős, 6 és 7 bitnél általában célszerű a legnagyobb értéket - 256, illetve sztereó módban 128 - beállítani, mert azzal a legkisebb a CPU használat lejátszáskor.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.12. 00:24:02
Ezt már ismerjük régrõl, de azért sztereóban csak jobb :-)
Jó lett :) Viszont a kossuth.snd-nél észrevettem, hogy a lejátszás minősége (emulátoron legalábbis, EP-n még nem próbáltam) rosszabbnak tűnik, mint a régi, csak emulátoron használható sndplay.ext verzióval :( Valószínűleg a nagy frekvenciájú négyszögjel használata miatt.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.12. 00:28:05
csak emulátoron használható sndplay.ext verzióval
Annál mi is lett volna a trükk lényege? Nem lehetne valahogy a valódi Dave-el is megetetni?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.12. 00:40:29
Annál mi is lett volna a trükk lényege?
Az, hogy két hanggenerátor kimenete fix '1' legyen négyszögjel helyett, és így azoknak a keverésével "7 bites DAC" legyen megvalósítható. A problémát talán az okozhatja, hogy az A7h port alsó "szinkron" bitjei nem csak a számlálókat nullázzák (amint az az emulátorban jelenleg van), hanem a kimenetet is '0'-ra állítják, ami természetesen azt eredményezi, hogy nincs hang.
De a "javított" verziót még nem próbáltam ki igazi gépen, tehát lehet, hogy a rosszabb minőség csak emulátor probléma. :)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.12. 10:53:20
A "Mushroom" példákat ez a csomag már nem tartalmazza, de itt vannak külön: :)
Ez a Mushroom mibõl készült? Meg van az eredeti PC-s fájl? Vagy az EP-sbõl konvertáltad vissza WAV-ra?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.12. 19:47:37
Ez a Mushroom mibõl készült?
Ezt konvertáltam: :)
Egy "EP-s" zene eredetije. (http://uk.youtube.com/watch?v=BfGsjGHSKww)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.15. 00:51:40
Annál mi is lett volna a trükk lényege? Nem lehetne valahogy a valódi Dave-el is megetetni?
Itt egy újabb próbálkozás, amely emulátoron egyelőre nem működik (nem csak a már ismert A7h port sync bit bug miatt, egy másik emulátor hibát is találtam: a gyűrűmoduláció effektus az igazi gépen nem XOR, hanem XNOR művelet :oops:), de EP-n viszont igen, legalábbis az én gépemen biztosan:
[attachurl=#]
[attachurl=#]
Ha megfelelően működik, akkor az előző verziónál kb. 6 dB-el hangosabbnak kell lennie.

Screenshot igazi gépen: :)
[attachthumb=#]
A minőség azonban valójában nem igazán jó, mert a DAC megvalósítására használt ellenállások meglehetősen pontatlanok.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.15. 08:55:49
de EP-n viszont igen, legalábbis az én gépemen biztosan
Én majd hétfö este tudom kipróbálni.
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.March.15. 13:07:31
Mikre rá nem jössz "menet közben"...  :)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.15. 22:49:45
emulátoron egyelőre nem működik (nem csak a már ismert A7h port sync bit bug miatt, egy másik emulátor hibát is találtam: a gyűrűmoduláció effektus az igazi gépen nem XOR, hanem XNOR művelet :oops:)
Javított hang emuláció:
[attachurl=#]
A CPI/CPD utasítások időzítését is javítottam (3 ciklussal gyorsabbak voltak), ezért előfordulhat, hogy a demo felvétel/lejátszás időzítése nem kompatibilis a régebbi verziókkal.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.16. 00:01:53
Újabb javított lejátszó program:
[attachurl=#]
Ez is csak a fenti emulátor verzióval, illetve - remélhetőleg - igazi gépen működik.

Ezzel az egyszerű programmal a lejátszóban használt DAVE trükköt lehet tesztelni: ha megfelelően működik, akkor hosszabb idő után sem fordul elő, hogy az egyik oldalon nincs hang:
[attachurl=#]
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.16. 22:08:02
de EP-n viszont igen, legalábbis az én gépemen biztosan:
Ha megfelelõen mûködik, akkor az elõzõ verziónál kb. 6 dB-el hangosabbnak kell lennie.
Nálam is szól, és hangosabb :-) 4/6 Mhz-en is próbáltam
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.16. 22:09:49
Ezzel az egyszerû programmal a lejátszóban használt DAVE trükköt lehet tesztelni: ha megfelelõen mûködik, akkor hosszabb idõ után sem fordul elõ, hogy az egyik oldalon nincs hang:
Az normális, hogy idõnként változik a hangmagasság?
Meg néha hallani egy pici megakadást, vagy ez a ciklus újraindulásától van?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.16. 22:15:35
Az normális, hogy idõnként változik a hangmagasság?
Igen, mert változtatja a BFh port 1. bitjét. Ezen kívül két különböző megoldást is tesztel (ezek közül az egyik van a legújabb lejátszóban), tehát valójában 4 lehetséges módban fut.
Quote
Meg néha hallani egy pici megakadást, vagy ez a ciklus újraindulásától van?
Igen.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.16. 22:18:27
Nálam is szól, és hangosabb :-) 4/6 Mhz-en is próbáltam
Akkor ez a "0.96" lejátszó lesz a hamarosan elkészülő új konverter csomagban.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.18. 00:35:20
Kis mértékben csökkenti a 2, 3, és 4 bites formátumok átlagos zaj szintjét (amelyet a konverter zárójelben kiír), de lassabb. Az -O2 pedig tovább javít egy keveset, és még lassabb. :) 6 és 7 bites módban nincs semmilyen hatása. A blokk méret (-b) szintén elsősorban a 2, 3, és 4 bites file-oknál jelentős, 6 és 7 bitnél általában célszerű a legnagyobb értéket - 256, illetve sztereó módban 128 - beállítani, mert azzal a legkisebb a CPU használat lejátszáskor.
Összehasonlításképpen a "Mushroom" -O2 paraméterrel konvertálva (a többi beállítás ugyanaz):
[attachurl=#]
[attachurl=#]
Nagy javulást azonban nem eredményez, a különbséget a régebbi változatokhoz képest valószínűleg nem igazán lehet észrevenni :)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.18. 00:43:40
Meg lehetne oldani, hogy MP3-at is egyen?
És esetleg olyat lehetne, hogy megadni idõtartományt, hogy a fájl melyik részét konvertálja? Pl, hogy 2 perc 3 másodperctõl 10 másodpercet (esetleg tized másodpercre is). Így akinek nincs kéznél hangszerkesztõ, az is ki tudna vágni egy neki tetszõ, EP-be férõ részletet.
Elkészült az új verzió: :)

Ez természetesen tartalmazza a frissített lejátszót is.
A libmpg123 segítségével olvasni tudja az .mp3 file-okat, illetve a régebbi MPEG layer 1 és layer 2 (.mp2) formátumot is. Egy kisebb probléma van: ha a bemeneti file érvénytelen formátumú, akkor előfordulhat, hogy csak hosszabb idő (10 másodperc vagy több) után írja ki a hibaüzenetet.
A -k és -l paraméterekkel megadható a konvertálandó rész kezdete és hossza másodpercben; alapértelmezés szerint az egész file-t konvertálja.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.19. 01:16:23
Egy kisebb probléma van: ha a bemeneti file érvénytelen formátumú, akkor előfordulhat, hogy csak hosszabb idő (10 másodperc vagy több) után írja ki a hibaüzenetet.
Javítva :)
Title: Re: Hanglejátszó fejlesztése
Post by: Ep128 on 2009.March.19. 12:59:03
Milyen szerencsénk van, hogy maximalista vagy.  ;-)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.21. 12:11:38
Egy érdekes bugot találtam, amiben az a érdekes, hogy nem minden gépen jelentkezik:
A színes kijelzõ csíkból ott ugrál egy pixelsornyi a státusz sor alatt. Már a betöltés közben is.
Valami trükkös LPT idõzítési probléma lehet?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.21. 15:43:51
Egy érdekes bugot találtam, amiben az a érdekes, hogy nem minden gépen jelentkezik:
A színes kijelzõ csíkból ott ugrál egy pixelsornyi a státusz sor alatt. Már a betöltés közben is.
Valami trükkös LPT idõzítési probléma lehet?
Erről érdekes lenne egy képet látni. Az LPT-ben nincs semmilyen trükk (feltéve, hogy nem hibás), de a státuszsort az EXOS LPT elejéről másolja, és a magasságát 9 sorra állítja - lehetséges, hogy ez a megoldás egyes ROM konfigurációkkal nem működik :?:
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.21. 20:27:28
Az LPT-ben nincs semmilyen trükk (feltéve, hogy nem hibás)
Ha nem ott a hiba, akkor sikerült egy igen fura hw hibát találni :-( bár az mindenképpen érdekes, hogy az általam kipróbált 3 gép közül miért csak egyen jön elõ a jelenség?
Quote
, de a státuszsort az EXOS LPT elejérõl másolja, és a magasságát 9 sorra állítja - lehetséges, hogy ez a megoldás egyes ROM konfigurációkkal nem mûködik :?:
A bõvítõk, ROM-k változatlanok, csak az alapgépet cserélgettem.

Quote
Errõl érdekes lenne egy képet látni.
Itt egy pár, ahol több sornak tûnik, az csak a fényképezõ miatt van szerintem, szabadszemmel egy ugráló, néha eltûnõ csík látszik.
[attachthumb=1]
[attachthumb=2]
[attachthumb=3]
[attachthumb=4]
[attachthumb=5]
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.21. 20:51:25
Talán az lehet a probléma, hogy a bal és a jobb margó ugyanaz (itt 11) :?: :idea: Ha igen, akkor ez könnyen javítható.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.22. 00:02:43
Talán az lehet a probléma, hogy a bal és a jobb margó ugyanaz (itt 11) :?: :idea: Ha igen, akkor ez könnyen javítható.
Próbáljuk ki, hogy mi lesz!

Mindenesetre ezen a gépen nincs az a pixelhiba jelenség amit az új topicban írtam le.
És néztem egy pixelhibás gépen, azon meg nem volt ez a hiba...
Jó kérdés, hogy ez hw hiba, vagy esetleg vannak különbözõ sorozatú Nick-ek, amik egyes dolgokat másként kezelnek?
Mindenesetre van itt még vagy 10 gép, majd tesztelek még :-)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.22. 01:00:42
Próbáljuk ki, hogy mi lesz!
Feltöltöttem a módosított verziót.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.March.22. 09:47:44
Feltöltöttem a módosított verziót.
Ugyanaz :-( akkor ez valami kretén hw hiba lesz :-(
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.March.22. 11:31:15
Ugyanaz :-( akkor ez valami kretén hw hiba lesz :-(
Akkor nem egészen értem, mi lehet a probléma :???: Bár az érdekes, hogy ahol a "hibás" kivezérlésjelző megjelenik, egy karakterrel el van csúszva jobbra. Talán a hiba akkor is jelentkezik, ha csak egy karakter szélességű a kép (a "javított" lejátszó ezt a megoldást használja, a kivezérlésjelző bal oldalán van egy fekete karakter, így nulla szintnél a margók 10,11-re vannak beállítva). De akkor az már valóban hardware hiba lenne.

Az is furcsa a képeken, hogy a betöltésnél a folyamatjelző háttere fekete (E0h színűnek kellene lennie), de ez lehet, hogy csak a túl nagy kontraszt miatt van.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2009.May.17. 19:51:58
Új epsndconv (http://enterpriseforever.com/dlattach.html;topic=358.0;attach=3319) csomagot töltöttem fel. Csak a lejátszó változott: az aktuális Multiplay ROM-ban található verzióra frissítettem (dtm5.s DAC trükk használata).
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.October.21. 23:39:48
Ezt nem lehetett kihagyni  :ds_icon_cheesygrin:
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2009.December.25. 21:22:23
A neten találtam az Exolon zenéjének mod-os feldolgozását. [attachurl=#] Talán az eddigi legkisebb mod file. Megpróbáltam az EDCW Digitrax programjával EP-s formátumba konvertálni. Az egyik csatorna valamiért nem szól... Még Geco mondhatott valamit régebben, hogy HEX editorral ha az adott hangszer neve elõtt átírunk valamit, akkor az is szólni fog, de nekem ez se jött be...

Egyéb megjegyzések:
Mivel ez a mod nagyon kicsi, talán ezzel rá lehet venni a lejátszót, hogy külön konvertálás nélkül is megszólaljon EP-n (ez Zozo álma volt régebben, úgy emléxem).
Kicsit macerás az EDCW Digitrax konvertere, mert emulátorral csak floppylemezzel használható, "magnós géppel" nekem nem mûködött.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2009.December.25. 21:30:06
Még mindig az a álmom :-)
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.21. 11:19:35
A következõt álmodtam ma. :)
Hangtömörítés EP-re. Van egy Wav file, amelyet egy pc program analizál. Kicsi részekre bontja, és a kicsi részekhez hasonló Dave hang paramétereket keres (használva a Dave összes tudását, torzítás, szûrõk, hangmagasság stb.). Így létre jön egy sor rövid, Dave-el lejátszható hang, amelyek "megszólalásig" :) hasonlítanak az eredeti digitalizált hanghoz.
Azt hiszem lekódolni nem lenne könnyû, gondolom még nehezebb mint a képkonvertálónk...

Vicces még, hogy álmomban el is kezdtem kódolni... :D Basic-ben és asm-ban csináltam, és lényegében semmi se sikerült, olyan béna voltam. Biztos a meleg teszi... :D
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2010.July.21. 11:59:45
Vicces még, hogy álmomban el is kezdtem kódolni...
Akkor most folytathatnád ébren :-)
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.21. 14:22:37
Á, én ilyesmiket sose tudtam leprogramozni, ehhez matek kell. :)
De ötleteim vannak:
-le kell generálni sok kis hangmintát a Dave-el, kihasználva kb. minden lehetõségét
-ki kell elemezni ezeket valami hang elemzõ algoritmussal, hogy milyen frekvenciák vannak benne

Így elkészül egy adatbázis. Ezután ugyanígy ki kell elemezni a lejátszani kívánt Wav-ot, azt is kis darabokra bontani, és megfeleltetni a Dave-s hangok adatbázisának.

Ki lehetne elõre számolni hogy mekkora tömörítést lehetne elérni ha pl. 1 milisec-es hangmintákat használunk. De lehet hogy ez túl hosszú már, nem tudom... Attól is függ milyen wav-ot akarunk konvertálni. Lehet hogy ez az egész csak beszédre vagy elektronikus zenére lenne használható?

Szerintem érdekes project lenne, és azon se csodálkoznék ha már létezne ilyesmi.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.21. 20:58:31
Hát most kipróbáltam Goldwave-ben egy dolgot. Betöltöttem egy zenét, kiejlöltem egy pici részt és loop play-el meghallgattam. Hát elég rövid kis rész kell ahhoz, hogy EP-vel elõállítható hangzása legyen... de van benne lehetõség.
Persze marha komoly kóderi munka lenne ez az egész. Szerintem minimum Nobel díj lesz ha valaki ezt megcsinálja. :D
Viszont rá kéne keresni neten, hátha már van ilyesmi. Csak hogyan? Ötlet? Waveform analizing to simple waves? Ötletem sincs.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2010.July.21. 21:12:53
Egyébként hasonlóra vágytam már én is, (http://enterpriseforever.com/offtopic/pc_buheralas_amig_jobb_nem_jut_az_eszembe-t161.0.html;msg17432#msg17432) csak nem egész zenék, hanem egyszerû PC Speaker-es hangeffektek kapcsán.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.22. 19:01:01
Egy ötlet: le lehetne tesztelni, hogy miféle hangokat lehetne kihozni a Dave-el egy ilyen wav-to-dave dologhoz, a következõ programmal:
-gépi kódban kell írni hogy gyors legyen
-random magasságú hangokat adunk ki minden csatornára egyszerre
-a torzításokat is randomizáljuk
-lehessen gombokkal állítani a hangmagasság randomizálás mértékét, a hang hosszot (tehát hogy mennyi idõ után generálunk új paramétereket), a torzítás fajtáinak randomizálását (tehát pl. lehessen olyat csinálni hogy random váltakozik 2 féle torzítás)

Szóval valami ilyesmi, persze ez így nagyon pontatlan leírás, de aki érti az tovább tudja gondolni.

Amúgy a mai gyors pc-nek evolúciós módszerrel is lehetne ilyen programot fejleszteni. Ez esetben egy jó összehasonlító programot kell írni, amely a wav kicsi darabját és a dave által generált kicsi darabot hasonlítja össze. Ha hasonlítanak, akkor letárolja és veszi a következõ darabot.
Na ezt részletesebben:
-fogunk egy wav-ot, tanácsos szerintem elõször egyszólamú zenével vagy beszéddel próbálkozni
-vesszünk belõle egy pár milisec-es hosszúságút darabot
-randomizálunk minden dave paramétert és lejátszuk a dave-el
-összehasonlítjuk a wav darabot és a dave hangot: ehhez persze megint csak komoly analízus matek kell gondolom
-megadott ideig ismételjük a két elõzõ pontot, és a próbálkozások legjobbja lesz az eredmény
-az eredményt letároljuk (tehát a dave randomizált paramétereit)
-ugrunk a wav következõ darabjára
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.22. 19:34:56
Basic-ben írkáltam egy kis bénaságot:
10 sound style 64+rnd(1), duration 10, pitch 30+rnd(3), source rnd(3)
20 goto 10

Tehát látható hogy megadott értékek között randomizálódnak a dolgok. Most ebben a style fix 64-en van mert a randomizációja 0. A pitch határainak jó beállításaival lehet érdekes dolgokat csinálni, fõleg ha csak kicsit van randomizálva!

Ami viszont a legtrükkösebb az a source randomizálása, ami által a torzítási csatorna kombinációk tök jól variálódnak. :)
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.22. 19:50:46
na itt egy kis basic program ami olyan hangot csinál mintha tekergetnénk a rádiót
néha mintha beszédfoszlányokat hallanánk! (khm... kis túlzással :))
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2010.July.24. 21:19:42
És ha ez a wav to dave mûködne, akkor ha pl. Rockdigi zenét felvennénk pc-vel wav-ba és visszakonvertálnánk EP-re az Endi által leírt módszerrel, gyakorlatilag ugyanazt kapnánk vissza hangzásban, mint az eredeti Rockdigi muzsikát, ha jól értem. Nagyjából azzal állítható párhuzamba, amikor EP-rõl képet mentünk PC-re, majd István EPimgconv programjával visszakonvertáljuk EP-s formátumúra, nointerp 1 (interpoláció nélkül) paramétert használva. (Ill. még mozgó képeknél is, pl. Batman "demó" videó EP-re, meg a fórumunkon fent elõforduló Cauldron "demó", visszaalakítás után olyan marad, mint az eredeti.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.24. 21:47:40
Hát valószínûleg a hangminõség nem lenne túl jó, továbbá a tömörítés mértéke is kérdéses.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.July.24. 21:56:54
na, talátam egy nagyon érdekes java programot
hanggenerátor (http://faculty.washington.edu/dillon/PhonResources/javoice/vowjavoice2.html)

64 csatornán tud megszólaltatni, ha jól hallom 4szögjelet, rajzolni is lehet a képre
az érdekesség viszont a oldal alján a presetek!
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2010.September.10. 14:51:14
Látom nem aratott sikert az ötletem.

De itt egy másik, egy átírni való. :)
Most találtam: http://www.worldofspectrum.org/infoseekid.cgi?id=0021299
Egy ilyet amúgy én írtam EP-re, csak elveszett. Már arra se emlékszem mi volt benne. Resample volt, de csak kétszerezni meg felezni lehetett, meg volt filter is ami csak annyi volt hogy interpolálta a mintákat, azaz tompább lett a hang. Másra nem emlékszem. De az is kirajzolta szépen a mintát. :)
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2010.September.11. 12:20:46
na itt egy kis basic program ami olyan hangot csinál mintha tekergetnénk a rádiót
néha mintha beszédfoszlányokat hallanánk! (khm... kis túlzással :))
Elképzelhetõ, hogy a beszédfoszlányok kihallásának pszichológiai oka van. A nem teljesen kivehetõ hangokat az emberi agy talán megpróbálja azonosítani valami ismert hanggal. A sistergést alapból beazonosítja rádióhangnak, amiben a "recsegés" is segít, így a néha felbukkanó mélyebb hangok tényleg úgy hathatnak, mintha az állomáskeresõ egy pillanatra megállna valami beszéden.
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2011.May.13. 11:03:42
A héten eszembe jutott, amit Endi írt pár éve, hogy rájött arra, ha a tone regiszterek értékét úgy állítjuk be, hogy hangot ne bocsájtson ki a DAVE (pl A0: 01, és A1 00), akkor digi hangot le lehet játszani az összes csatornán, kipróbáltam az emulátoron, és fasza, csak halkabb, mintha a D/A-t használnánk, a DTM playert is átállítottam erre a módra tesztképp, teljesen jól szólt.
Ilyen beállítások mellett, lehetne gépünkön akár 6, vagy 8 (ha a tone regiszterek nullázása mellett is megszólal a hang, emulátoron igen) csatornás MOD-ot is lejátszani, ha bírja a processzor. Vajon elég gyors hozzá?
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.August.17. 13:00:12
Konvertálni már lehet sztereó formátumba is, bár lejátszani egyelõre még nem lehet: :) :oops:

Ez a legfrissebb sndconv? Ha igen, fel kéne tenni a letöltések közé.

A frissebb link nem mûködik: :(
Új epsndconv (http://enterpriseforever.com/dlattach.html;topic=358.0;attach=3319) csomagot töltöttem fel. Csak a lejátszó változott: az aktuális Multiplay ROM-ban található verzióra frissítettem (dtm5.s DAC trükk használata).
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2011.September.21. 16:40:11
A héten eszembe jutott, amit Endi írt pár éve, hogy rájött arra, ha a tone regiszterek értékét úgy állítjuk be, hogy hangot ne bocsájtson ki a DAVE (pl A0: 01, és A1 00), akkor digi hangot le lehet játszani az összes csatornán, kipróbáltam az emulátoron, és fasza, csak halkabb, mintha a D/A-t használnánk, a DTM playert is átállítottam erre a módra tesztképp, teljesen jól szólt.

A DTM lejátszó (legalábbis az általam továbbfejlesztett :DTM bővítés) eddig is tudta ezt a trükköt, mint ahogy az :SNDPLAY is. :) De egy másik, bonyolultabb megoldással azt is el tudtam érni, hogy legfeljebb 2 hanggenerátor kimenetén folyamatosan logikai "1" szint legyen, így kevésbé csökken a hangerő, igaz, nem lehet annyi csatornát használni (a DTM-hez elég volt ez is).

Quote
Ilyen beállítások mellett, lehetne gépünkön akár 6, vagy 8 (ha a tone regiszterek nullázása mellett is megszólal a hang, emulátoron igen) csatornás MOD-ot is lejátszani, ha bírja a processzor. Vajon elég gyors hozzá?

Csak a DTM-nél jóval alacsonyabb mintavételezési frekvenciával, vagy turbós gépen. A DTM lejátszóban nincs várakozás a lejátszási ciklusban, és így kb. 16500 Hz frekvencián működik. Azonban szinte minden Z80 regisztert használ, tehát a lassulás az extra csatornák számával arányosnál nagyobb lehet.

A 0 frekvencia kód (125 kHz) nem működik megbízhatóan igazi gépen.

Legfeljebb 6 külön programozható DAVE hangerő regiszter lehet a D/A lejátszáshoz, mert azt nem lehet megoldani, hogy a zajcsatornán ne zaj legyen (illetve megoldható, csak akkor viszont az egyik hangcsatornán nem lehet hang, mert azt fel kell használni a zajgenerátor "leállítására").
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2011.September.21. 16:46:52
A frissebb link nem mûködik: :(

Itt a teljes csomag (konverter + forráskód + SNDPLAY):
  [attachurl=#]
Az ebben található SNDPLAY bővítés helyett célszerűbb a "multiplay" (IVIEW.ROM) verziót használni, mert az valamivel újabb, bár csak kisebb javításokat tartalmaz ehhez a verzióhoz képest.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2011.September.21. 22:03:40
Legfeljebb 6 külön programozható DAVE hangerõ regiszter lehet a D/A lejátszáshoz
Turbos gépen ezt ki lehetne használni?
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2011.September.22. 09:26:39
Legfeljebb 6 külön programozható DAVE hangerő regiszter lehet a D/A lejátszáshoz, mert azt nem lehet megoldani, hogy a zajcsatornán ne zaj legyen (illetve megoldható, csak akkor viszont az egyik hangcsatornán nem lehet hang, mert azt fel kell használni a zajgenerátor "leállítására").

Köszönöm /jük szépen a leírást :)
Igen a tesztelgetés során rájöttem erre, mert amikor beállítottam a hangcsatorna értékét, akkor a zajcsatornán folyamatosan szólt a zaj, belepiszkítva a lejátszásba, arra nem emléxem, hogy játszottam-e tovább vele. és sikerült-e úgy zenét lejátszani, hogy a zajcsatorna is szóljon, és a hozzárendelt hangcsatorna is. Az nem megoldás, ha A8-at, és AC-t D/A-ra állítjuk, A0-A1-et nullára, ekkor nem lehet a zajcsatornát A0-s frekvenciára állítva D/A-ként használni?
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2011.September.22. 09:46:50
Más, elkezdtem 1-2 sid konvertálását EP-re még régebben, tudom sose lesz olyan, mint C64-en, de szerintem a kód átalakítható Z80-ra, már csak egy viszonylag jó SID utánzás kéne (jópár dolog így is kimarad belőle), az eddigi próbálkozásom elég gyenge lábon áll :D
Az LN viszonylag jó, de tuti lenne mit rajta továbbfejleszteni, az EX-nél valamit elszúrtam a 6510-es kód átalakításánál, úgyhogy meg se szólal  :oops:, és itt adtam fel, tartok egy hosszú pihenőt :D
Egyszerűbb módja nem lehet az átalakításnak?  :oops:
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2011.September.22. 13:12:58
Turbos gépen ezt ki lehetne használni?

7.119 MHz-es gépen talán, a probléma az, hogy a DTM lejátszó szinte minden Z80 regisztert használ a kód optimalizálására, tehát 6 csatornánál nagyobb lehet a lassulás másfélszeresnél, mert a változók már nem férnek el Z80 regiszterekben. Mindenesetre meg kell próbálni csak a lejátszó ciklust átalakítani :) De ha nem elég gyors, az sem feltétlenül probléma, csak akkor rosszabb minőségű lesz a hang.

Az nem megoldás, ha A8-at, és AC-t D/A-ra állítjuk, A0-A1-et nullára, ekkor nem lehet a zajcsatornát A0-s frekvenciára állítva D/A-ként használni?

Ha az A7h porton D/A mód van beállítva, akkor a hangkimeneten már csak az A8h és ACh által vezérelt D/A lehet, más nem.

A zajcsatornát ezeken a módokon lehet leállítani:
  - SYNC módban levő hangcsatornát használva órajelnek. Ilyenkor azonban a felhasznált hangcsatornán nincs hang, tehát nem lesz több D/A célra használható csatorna.
  - az aluláteresztő szűrővel, szintén 0 órajellel; az előző megoldáshoz képest nem igazán van előnye, és igazi gépen nem is mindig megbízható (az aluláteresztő szűrő hajlamos egy idő után "elfelejteni" a tárolt értéket)
  - gyűrűmoduláció nagy frekvenciájú hangcsatornával; így még "zajos" marad a kimenet, csak kevésbé. Ez akkor működik a legjobban, ha a zaj alacsony frekvenciájú, de akkor megint egy hangcsatornát kell "feláldozni" :(
Más lehetőségek is vannak, de nem tudom, ezek jól működnek-e valódi gépen. Talán a legjobb lenne kipróbálni :)
A "leállított" zajcsatornás D/A esetén további tröükkökre is szükség van ahhoz, hogy a zaj biztosan logikai "1", és ne "0" állapotban legyen leállítva. Erre a :DTM és :SNDPLAY bővítőkben található egy megoldás, ami úgy látszik, általában működik igazi gépen is.

már csak egy viszonylag jó SID utánzás kéne (jópár dolog így is kimarad belőle),

Jó minőségű SID emulációra EP-n nem sok esély van, gyakorlatilag a burkológörbét lehet megoldani, illetve "digitális" SID emulációval lehetőség van (rossz minőségű) háromszög- és fűrészjelre, PWM négyszögjelre, és talán szinkronizációra is; a megvalósítás során kiderül, mire elég a Z80 sebessége.
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2011.September.22. 13:53:37
Más lehetőségek is vannak, de nem tudom, ezek jól működnek-e valódi gépen. Talán a legjobb lenne kipróbálni :)
A "leállított" zajcsatornás D/A esetén további trükkökre is szükség van ahhoz, hogy a zaj biztosan logikai "1", és ne "0" állapotban legyen leállítva. Erre a :DTM és :SNDPLAY bővítőkben található egy megoldás, ami úgy látszik, általában működik igazi gépen is.
Köffke :)
Hát mivel az előbb említetted, hogy lehet 6 csatornás zenéhez se lenne elég gyors a turbós Z80, így fölösleges is nyomozni, hogy ki lehet-e csiholni a DAVE-ből 8 csatorna digit.

Jó minőségű SID emulációra EP-n nem sok esély van, gyakorlatilag a burkológörbét lehet megoldani, illetve "digitális" SID emulációval lehetőség van (rossz minőségű) háromszög- és fűrészjelre, PWM négyszögjelre, és talán szinkronizációra is; a megvalósítás során kiderül, mire elég a Z80 sebessége.
Azt tudom, hogy jó minőségűt nem lehet elérni, a viszonylag jó alatt azt értettem, hogy csak négyszögjelekkel dolgozva, amit lehet beletenni, vagy esetleg, ha nem okozna túl nagy lassulást, akkor burkológörbével amennyire lehet, utánozni a SID különböző hangtípusait, gondolom egy 1kHz-es megszakítás kéne hozzá, hogy valamennyire hasonló is legyen. Maradhatna annyi szabad processzor idő, hogy egy játékba is be lehessen tenni, vagy ebben az esetben mindenképp el kell felejteni ezt?
Az LN-ben csak az envelope-ok vannak "emulálva", meg a frekvencia konvertálva, ez is egész jó hangzást nyújt jópár SID esetén.
El is mondom miért érdekel ez a téma annyira :)
Elővettem a CPC-s Exploding Fistet, és elkezdtem átírni, természetesen elakadtam ott is, mint a SID-jénél :D
Ott szépen kigondoltam, hogyan fogom betenni a plusz C64-es képeket is a játékba az egy db CPC-s mellé, azt is hogy a sprite kiírást hogyan alakítom át, mert a CPC-s háttérképen csak 3 objektum volt, azon a területen, ahol a harcosok is előfordulhatnak, és ezeket minden frame-ben kirajzolja, a + c64-es képeknél ez nem jó megoldás, azt terveztem, hogy minden frameben csak a játékosok által kitakart részt rajzolom újra ki a háttérkép letárolt verziójából másolva, és csak a sprite nem 0-ás adatait ráírva. Itt az lett a problémám, hogy a sprite törlési fázisánál más pozíciót használ, mint a kirakási fázisnál, és nem tudtam eltalálni a normális helyet, hogy mettől-meddig másoljam a hátteret, meg ha jól rémlik, néha a sprite-ból is maradt a képen szemét, ekkor döntöttem el a SID konverzióját, hogy feldobja később a játékot, majd utána foglalkozom a sprite kérdéssel újra, na a SID 6510-es kódjának átalakításánál meg valahol vétettem legalább egy hibát, és több napi keresgélés után se találtam meg, így most a téma jegelve, míg erőt nem gyűjtök újra :D
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.September.22. 18:32:34
Itt a teljes csomag (konverter + forráskód + SNDPLAY):
Köszi! Utólagos engedelmeddel feltettem a letöltések közé.

UI: A Dave Testet is feltettem.
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.September.23. 09:40:48
ex.zip (13.71 KB - letöltve 9263 .)

Az f.mus hogyan játszható le? vagy ez az, amire írtad, hogy meg se szólal? Szóval nem kell hozzá külön betöltõ?
A másik nem rossz, csak az eleje után van egy rész, amibõl valami gondolom, hiányzik.
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.September.23. 15:45:15
A SID zenék konvertálásához: Nem tudom, C64-en hányféle torzítás van, de lehet, hogy a 4 bites (STYLE 16) ott nem létezik? Esetleg azt lehetne használni pl. a háromszögjel helyett, persze csak úgy, hogy azokat az értékeket "lõjük be", amik normális hangot adnak, tehát ezeket az értékeket elõbb meg kéne mind keresni.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2011.September.23. 16:10:57
A SID zenék konvertálásához: Nem tudom, C64-en hányféle torzítás van

C64-en nincsaz EP-hez hasonló torzítás, viszont van néhány más effektus, amit a DAVE nem tud.

Quote
, de lehet, hogy a 4 bites (STYLE 16) ott nem létezik? Esetleg azt lehetne használni pl. a háromszögjel helyett

A STYLE 16 hangja egyáltalán nem hasonlít a háromszögjelhez. EP-n háromszögjelet csak digitális lejátszással lehet előállítani; D/A nélkül az egyszerű négyszögjel áll hozzá a legközelebb (mindkettő csak páratlan harmonikusokat tartalmaz, de a háromszögjelnél ezeknek a szintje meredekebben csökken a frekvencia függvényében).
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.September.23. 17:15:02
Nem is feltétlenül arra gondoltam, hogy hasonlít hozzá, csak valahogy azt is "be lehetne dobni", hogy a hangzás változatosabb legyen. Ha ugyanazt nem is tudjuk elérni, lehetne máshogyan a hangzást "feldobni". Persze ezt minden zenénél külön kell kipróbálni, van-e értelme.
Title: Re: Hanglejátszó fejlesztése
Post by: lgb on 2011.September.24. 08:45:56
C64-en nincsaz EP-hez hasonló torzítás, viszont van néhány más effektus, amit a DAVE nem tud.

A STYLE 16 hangja egyáltalán nem hasonlít a háromszögjelhez. EP-n háromszögjelet csak digitális lejátszással lehet előállítani; D/A nélkül az egyszerű négyszögjel áll hozzá a legközelebb (mindkettő csak páratlan harmonikusokat tartalmaz, de a háromszögjelnél ezeknek a szintje meredekebben csökken a frekvencia függvényében).


Mivel hang dolgokban egy gepnel sem volta sohasem toppon :) elarulhatna valaki, hogy mit jelent az EP-n a "torzitas" fogalma, az konkretan mit csinal? C64-en  imho van alul/felul/sav atereszto szuro (programozhato), meg gyuru modulacio, ugye tobbfajta hullamforma stb, de nem tudom hogy Dave eseten a 'torzitas' fogalma az megfeleltetheto-e barminek a fenti listabol vagy azok kombinaciojanak? A szuro fogalmat meg ertem, tanultam Furier transzoformaciot stb, szoval meg matematikailag is fel tudom fogni, de ez a "torzitas", hogy pontosan mit jelent EP-n, azt passz ....
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2011.September.24. 12:16:46
Mivel hang dolgokban egy gepnel sem volta sohasem toppon :) elarulhatna valaki, hogy mit jelent az EP-n a "torzitas" fogalma, az konkretan mit csinal?

Ez nem "analóg" nemlineáris torzítást jelent (de erre négyszögjelnél egyébként sem igazán van lehetőség), hanem gyakorlatilag rövid periódussal ismétlődő "zajt" generál a négyszögjel helyett. Egészen pontosan így működik:
  - a torzításhoz használandó álvéletlenszám-generátor folyamatosan fut fix nagy órajel frekvencián
  - a hanggenerátor a számlálójának a lefutásakor nem invertálja a kimenetét (ami a normál négyszögjelet eredményezné), hanem a nagy frekvenciájú zajgenerátor aktuális kimenetét mintavételezi, és az lesz az új kimenet a számláló újabb lefutásáig
Egy részletes példa:
  - a 4 bites polinom számláló az 100010011010111 (itt (http://enterpriseforever.com/hardver/dave-t37.0.html;msg19278#msg19278) található a pontos algoritmus, amely a sorozatot előállítja) sorozatot ismételgeti végtelenítve 250 kHz-es órajel frekvenciával
  - a torzítandó hanggenerátor frekvencia kódja 8, tehát 250000 / (8 + 1) Hz frekvenciával történik a polinom számláló mintavételezése
    100010011010111100010011010111100010011010111100010011010111100010011010111100010011010111
    *        *        *        *        *        *        *        *        *        *
    111111111000000000000000000111111111000000000111111111000000000000000000111111111000000000

  - minden karakter egy 250 kHz-es ciklus. A felső sorban a polinom számláló kimenete látható, a középsőben a mintavételezések időpontjai, az alsóban pedig a torzított hanggenerátor kimenete (ha nem lenne torzítás, akkor 9 "1" és 9 "0" váltakozna) található
  - érdemes megfigyelni, hogy csak 5 bit hosszúságú sorozat (10010) ismétlődik a kimeneten 15 helyett. Ez azért van, mert a polinom számláló és a mintavételezés periódusának van közös osztója (15, illetve 9, mindkettő osztható 3-al). Valójában 15-el osztható mintavételezési periódusnál nem is lenne hallható hang

Quote
A szuro fogalmat meg ertem, tanultam Furier transzoformaciot stb, szoval meg matematikailag is fel tudom fogni, de ez a "torzitas", hogy pontosan mit jelent EP-n, azt passz ....

A DAVE szűrőinek nem sok közük van az analóg szűrőkhöz, valójában ezek is csak egyszerű bináris műveleteket jelentenek:
  - a felüláteresztő szűrő az órajelnek használt csatorna lefutó éleinél 0-ra állítja a szűrt csatorna kimenetét, tehát gyakorlatilag a kitöltési tényező csökkentésével ér el "felüláteresztő" hatást
  - az aluláteresztő szűrő (csak a zajcsatornánál van) az órajel csatorna lefutó éleinél mintavételezi a bemenetét, és ezt tárolja
  - a gyűrűmoduláció XNOR kapu. Ez még meg is felel az analóg gyűrűmodulációnak előjeles négyszögjelek között:
        0 XNOR 0 = 1        -1 * -1 =  1
        0 XNOR 1 = 0        -1 *  1 = -1
        1 XNOR 0 = 0         1 * -1 = -1
        1 XNOR 1 = 1         1 *  1 =  1

A DAVE 0-2, azaz normál hangcsatornáinak a részletes működése:
  - a frekvencia kód (0-4095) egy számlálót vezérel, amely a beírt értéktől lefelé számol 0-ig, tehát 250000 / (N + 1) Hz frekvenciát állít elő (a hanggenerátorok órajele 250 kHz, de ha a BFh I/O porton 12 MHz-es bemeneti órajel van beállítva, akkor 166.67 kHz lesz helyette). A 0 frekvencia kóddal egyébként nem működnek megbízhatóan a hanggenerátorok, így a legnagyobb frekvencia nem állítható elő igazi gépen
  - a hanggenerátor lényegében egy flip-flop, amelyen a számláló minden lefutásakor a következő műveletek egyike történik:
    - ha nincs torzítás, akkor a kimenet egyszerűen átbillen a másik állapotba (125000 / (N + 1) Hz-es négyszögjel)
    - ha van torzítás, akkor a választott polinom számláló aktuális kimenetét mintavételezi, és az lesz az új kimenet
  - ha az A7h I/O porton az adott csatornához a szinkronizáció bit be van állítva, akkor az a számlálót folyamatosan a programozott értéken tartja (nem fut), és a flip-flop kimenetét 0-ra állítja
  - a felüláteresztő szűrő az órajelének használt csatorna kimenetének a lefutó éleinél 0-ra állítja a flip-flop kimenetét (ez egyébként négyszögjelnél kétszerezheti a frekvenciát)
  - a gyűrűmoduláció (XNOR kapu) az utolsó művelet a kimeneten, ha engedélyezett

Minden effektus, amely másik csatornával végez műveletet, a másik csatorna végleges, gyűrűmoduláció (ha van) utáni kimenetét használja.

A zajcsatornánál az effektusok sorrendje: aluláteresztő szűrő, felüláteresztő szűrő, gyűrűmoduláció. A zajcsatornához használt polinom számláló nem fix 250 kHz-en fut, hanem a választott zaj órajelen (31.25 kHz, vagy valamelyik hangcsatorna kimenetének a lefutó élei).

A hanggenerátor megszakítás a hanggenerátor számlálójának a lefutásakor történik, tehát erre nincs hatása a különböző effektusoknak.
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.September.24. 13:51:38
Egyébként a gyûrûmoduláció, mint olyan, EP-tõl függetlenül, mit jelent? Régebben próbáltam utánanézni neten és máshol is, de semmit nem találtam róla, csak a fórumunkat dobja ki, meg C64-es oldalakat, de biztos ettõl a két géptõl függetlenül is létezik a fogalom.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2011.September.24. 13:56:56
Egyébként a gyûrûmoduláció, mint olyan, EP-tõl függetlenül, mit jelent? Régebben próbáltam utánanézni neten és máshol is, de semmit nem találtam róla, csak a fórumunkat dobja ki, meg C64-es oldalakat, de biztos ettõl a két géptõl függetlenül is létezik a fogalom.

Itt (http://en.wikipedia.org/wiki/Ring_modulation) található részletes leírás.
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2011.October.31. 12:21:40
István az Arkos trackert (Windows verzió) lehetne egyszerűen EP-síteni?
Egész könnyen használható, és a megírt zenét z80 lejátszóval együtt elő tudja állítani, tegnap az Exploding fist 1. zenéjét sikerült megalkotni vele, és átalakítva talán ki lehetne használni az 1 kHz-es megszakítást is a zenékben.

off: köszi szépen a tippet, tényleg a codecek hiányoztak az avi konvertálásnál, fel is tettem a youtube-ra a végeredményt :) Azt nem értem, miért nem kiabált.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2011.November.17. 00:40:09
Végre újabb titokra derült fény. :)
A Samed hang "editoromba" betöltöttem az Áttörés c. játék egyik file-ját. Úgy emlékeztem ugyanis hogy a játék végigjátszáskor azt mondja hogy "I love you". És jól emlékeztem. :)

A Samed-el kicsit meg kellett variálni a hangot hogy lejátszható legyen vele. Mellékeltem az EP file-t, Samed-be betölthetõ és lejátszható.
Wav-ban is mellékeltem.
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2011.November.18. 21:57:29
Átkonvertáltam SNDPLAY formátumra egy részletet egy szerzeményembõl. Szerintem nem lett túl jó, meg halk is lett, de ha már átkonvertáltam, beteszem ide.
[attachurl=#]
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2015.January.05. 18:14:45
Amúgy nem lehetne olyan hanglejátszót (bármilyen zenét, hangot lejátszót) ami a SOUND: eszköz helyére rakható? Tök érdekes lenne egy profi zenelejátszó vagy digi lejátszó EXOS illetve Basic alatt. :)
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.January.05. 19:14:04
Amúgy nem lehetne olyan hanglejátszót (bármilyen zenét, hangot lejátszót) ami a SOUND: eszköz helyére rakható? Tök érdekes lenne egy profi zenelejátszó vagy digi lejátszó EXOS illetve Basic alatt. :)
Sztem ahhoz lassú lenne az EXOS/Basic.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2015.January.05. 19:20:27
Sztem ahhoz lassú lenne az EXOS/Basic.

hát az biztos :)
de már a mostani is lassú, legalábbis zenéhez. hangeffektekhez még elmegy, komolyabb zene tökre lelassít mindent
de érdekességnek jó lehetne...
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.January.05. 19:38:33
de érdekességnek jó lehetne...
Az biztos is :)
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2015.January.05. 19:41:51
Ott a Music Box Player. A PT3 Player-ből is lehetne hasonló.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2015.January.19. 17:24:20
Másik topikban volt szó ilyesmiről, meg régebben is beszélgettünk már hasonlóról: az EP 1 bites hangot tud rögzíteni.
Elvileg 1 bites hangból össze lehet gányolni nagyobb bitmélységűt, pl a Samed programomban volt erre lehetőség, 1 bitest átkonvertált 6 bitesre és interpolálta. Persze kb semmire se jó. :)
Viszont most eszembe jutott egy jobb ötlet, ami persze hasonlóan kb semmire se használható valszeg, de: minél nagyobb mintavételezéssel digizni azt a szerencsétlen 1 bites hangot (nem tudom az EP mit tud maxot), és aztán a felvett hangot mondjuk negyede frekire konvertálni, de az 1 bites értékeket összemixelve. Persze ez is csak 4 bit, de ki tudja, lehet hogy nem lenne rossz eredmény? :)
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.January.19. 18:43:05
Nem értek hozzá, de szerintem nem lenne rosz a végeredmény :)
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.08. 17:34:11
A véglegesnek szánt 8bites WAV lejátszó, max 32KHz-es adatot játszik le, az efölöttieket is 32KHz-en játsza le, beadagolható 8-32 bites előjeles/előjel nélküli mono/sztereó fájl, de természetesen 8bites monóként játsza le.
Támogatott formátumok: WAV (RIFF/NIST), AIFF, IFF

Csatolt fájl eltávolítva.
Attachment removed.
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.09. 17:39:13
I've made this one with Wavelab(Steinberg) 8 bit and 32Mz, but it doesn't sound with your player in the emulator...

---

Wavelab (Steinberg) segítségével készítettem, 8 bit, 32MHz, de nem szól a lejátszóddal az emulátorban...
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.09. 19:44:54
Oh shit, I haven't tested it with 32KHz wave, and something was wrong with my delay settings, if the song is a 32KHz song there should not be any delay in sound playback loop, now it has a "very long" wait 3330 CPU cycle, this is the reason.
I checked with 11,16,44Khz (8,16,24,32bit, mono/stereo) WAVs.

A francba, nem teszteltem 32KHz-es WAV-val, valami a késleltetés beállításnál rossz, ha 32KHz-es zene kerül lejátszásra, egyáltalán nem kéne késleltetésnek lennie, most egy "nagyon hosszú" késleltetés (3330 CPU idő) került be.
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.09. 19:55:55
The problem has been solved which was caused by the fact that I thought ADD HL,xx sets flag Z when the result is 0, now I see that it does not happen :D
The wave is nice, relaxing ;)

A probléma orvosolva, melyet az okozott, hogy azt hittem az ADD HL,xx állítja a Z flag-et ha az eredméyn 0, már látom, hogy nem :D
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.09. 23:10:07
Nagyszerű! Meg lehet reprodukálni sztereó?

Ha azt szeretnénk, meg tudom csinálni több vizsgálatot és tegye őket ide. (Google fordító, bocs)

------------------------

¡Estupendo! Puede reproducir stereo?

Si quieres puedo hacer mas pruebas y ponerlas aquí.

------------------------

Great! Can it reproduce stereo?

If you want I can do more tests and put them here.

-------------
szipucsu, you can correct me whenever you want...
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.10. 09:09:03
Great! Can it reproduce stereo?

If you want I can do more tests and put them here.
-------------

Unfortunately 8bit Stereo is impossible in this way, 7 bit Stereo is possible, but then the max frequency rate is about 29,5 KHz.
More tests would be great, I tested several formats also, but as we could see it was not enough ;)

Sajnos a 8bit sztereó nem kivitelezhető ezzel a megoldással. 7bit sztereót lehetne megvalósítani, de ebben az esetben a maximum frekvencia kb 29,5 KHz lenne.
Több teszt jó lenne, én is teszteltem számos formátumot, mint kiderült, nem volt elég :)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2015.February.10. 09:28:45
This player (http://enterpriseforever.com/programozas/assembly-programozas/msg44408/#msg44408) (compiled version (http://enterpriseforever.com/programozas/assembly-programozas/msg44412/#msg44412)) supports 6-bit stereo playback at 62500 Hz sample rate. There are a few noise shaped samples here (http://enterpriseforever.com/programozas/assembly-programozas/msg44415/#msg44415) that have >= 8-bit audible quality in theory, but they require a configuration with 4 MB RAM.

Without using interrupts, and running at a fixed sample rate, 7-bit stereo playback could be possible at at least 35.7 kHz (112 clock cycles per sample frame), and with optimizations maybe at up to 41.7 kHz (96 cycles). A simple modification of the above player to use 7-bit output would slow it down to 102 cycles per sample frame, or 39.2 kHz on a 4 MHz Z80.
Title: Re: Hanglejátszó fejlesztése
Post by: Zozosoft on 2015.February.10. 09:49:36
Ezek az értékek mind normál 4MHz-es gépre értendők? Azaz turbós gépen lehet jobb is?

Are these values valid for normal 4MHz machines? Can it be better on turbo machines?
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2015.February.10. 10:04:14
Ezek az értékek mind normál 4MHz-es gépre értendők? Azaz turbós gépen lehet jobb is?

Igen.
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.10. 11:18:37
8x41Mhz sztereó működik(Geco lejátszója)! Nem tudom, megfelelően játszotta-e le...

--------------

8x41Mhz stereo works with geco's player! I don't know if it is  played acordingly...
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.10. 11:24:07
8x41Mhz stereo works with geco's player! I don't know if it is  played acordingly...
It works, the player plays WAV's with higher sample rate, but it plays back on 32KHz frequency. and above 64KHz it plays back MOD(FREQ / 65536) Hz. And all stereo WAV's palyed back as mono.

Működik, a lejátsza a magasabb freqvenciájú WAV-okat is, de csak 32KHz-en, 64KHz felettieket pedig MOD(FREQ / 65536) Hz-en
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.10. 11:46:10
Another one.
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.10. 15:06:28
Milyen programot használhatok hangot átalakítani, hogy 7 vagy 6 bites legyen?
------------------
What program can I use to convert sound to 7 or 6 bits?
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.10. 15:28:38
Milyen programot használhatok átalakítani hangot, hogy 7 vagy 6 bit?(google...)
------------------
What program can I use to convert sound to 7 or 6 bits?
Unfortunately I do not know, I created 8bit sample with Audacity, and converted it with an assembly program on EP to 6bit :D, but I think there should be a PC program which can do it also.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2015.February.10. 16:13:51
Without "packing" the data to minimize the size, any program that can save 8-bit PCM audio is suitable, the range just needs to be limited to 0-63 (6 bits) or 0-126 (7 bits played with the right shift then add carry method). For 6 bits, each sample needs to be multiplied by 0.25, then an offset of +25% (signed 8-bit output) or -75% (unsigned) should be added. Some samples may exceed the allowed range, to avoid this, a lower multiplier can be used. I wrote a small C program that limited the samples to 0-63.

With the 62.5 kHz player, the use of a good noise shaping algorithm and settings can make a noticeable improvement, if the conversion software supports it.

For creating files to be played with SNDPLAY, use the epsndconv package from here (http://enterpriseforever.com/sound/hanglejatszo-fejlesztese/msg23617/#msg23617).
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2015.February.12. 13:08:04
This command using sox (http://sourceforge.net/projects/sox/) converts a sample for sndp625.com:
Code: [Select]
sox -r 35280 ping.wav -t raw -b 8 -e signed-integer -D sndp625.bin vol 1.0 rate -h 50000 dither -p 6 -s -f gesemann vol 0.25 dcshift 0.25If the input sample rate is not 44100 Hz, the 35280 needs to be replaced with the actual sample rate multiplied by 0.8. If there are too many clipped samples, or the input is too quiet, the volume can be adjusted by changing the "vol 1.0" option.

This is not the same conversion that I used to create the sample package, but it produces reasonably good sound quality.

[attachurl=1]
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.12. 17:09:16
IstvanV a hurkot a nagyon pontos sztereó ...

---------------------

IstvanV's loops very precise in stereo...
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2015.February.12. 18:18:53
There may be a problem with the conversion, because the sndp625.bin file sounds more noisy than it should. :oops: Or is that already in the original sample ? I tried converting this (https://www.youtube.com/watch?v=lcN5Vaqd9sg), although it is only a YouTube video with low bitrate AAC sound, but the 6-bit sample does not sound as noisy. I used sox-14.4.1a-win32.zip (http://sourceforge.net/projects/sox/files/sox/14.4.1/sox-14.4.1a-win32.zip/download), and the following command line:
Code: [Select]
sox.exe -r 35280 summertime.wav -t raw -b 8 -e signed-integer -D summertime2.bin vol 4.5 rate -h 50000 dither -p 6 -s -f gesemann vol 0.25 dcshift 0.25
[attachurl=1]
[attachurl=2]
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2015.February.12. 18:27:56
divat egy jó ideje a zenélésben, sőt zeneszerzésben is hogy loop-okból raknak össze egy zenét (más kérdés kinek mi erről a véleménye, de ezt most hagyjuk)

ilyen loopok vannak dob, basszus, stb tehát mindenféle hangsávok

szóval lehetne jó minőségű a hang akkor is ha több ilyen rövid loop szólna egymás mellett, ráadásul ez megadná a lehetőséget a kombinálhatóságra is, tehát hosszabb lehetne a zene

persze ez megvalósítható az ep-hez készült digis zeneszerkesztőkkel is
Title: Re: Hanglejátszó fejlesztése
Post by: gflorez on 2015.February.12. 19:01:36
Megcsináltam a parancssoros programmal. De ez már eleve módosított 8 bites wav volt, egy 16 bites mp3-ból. Jobb lesz, ha legközelebb közvetlenül csinálom.

Nagyon király vagy ... Veszettül jól hangzik! ... Hihetetlen EP-n!

--------------------

I did it with that command line, but is an already modified 8 bit wav taken from a 16 bit mp3. Better I`ll do directly.

You are a purist... It sounds superb for me... Incredible on an EP .
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2015.February.12. 21:15:27
divat egy jó ideje a zenélésben, sőt zeneszerzésben is hogy loop-okból raknak össze egy zenét (más kérdés kinek mi erről a véleménye, de ezt most hagyjuk)
Ezt direkt a kisebb memóriájú gépekre találhatták ki. Én is írtam már itt erről egyszer. Ugyanaz ismétlődik 50-szer, közben 3 más loop is ismétlődik 10-szer, kis memóriával is jó  hangzás érhető el így, és a semminél változatosabb. EP-re ideális. Más kérdés, hogy PC-n egy rakat memória és tárhely van, így oda hangonként illene megkomponálni a zenét. :D
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2015.February.16. 19:26:51
WAVPlayer (http://enterpriseforever.com/letoltesek-downloads/enterprise-software/?action=dlattach;attach=11626) végleges verzió
Az utolsó csatolmány óta nem változott semmi, ami eddig nem hangzott el:
ESC-kel lehet fájlt váltani, amit hosszabban kell nyomva tartani, mert csak a memórialapozásokkor ellenőrzi a program a billentyűzetet, ez 16KHz-es samplénél 1 mp.
Bal SHIFT+ESC: nincs háttér anim csere fájl váltáskor (EXDOS nélküli gépeken)
Bal SHIFT: Fájl menüben fájl kiválasztásakor (SPACE) lenyomva nincs háttér anim csere (EXDOS-szal rendelkező gépeken)
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2015.December.14. 13:52:17
egy leírás a specys zene lejátszókról
http://battleofthebits.org/lyceum/View/zxbeep+(format)/
Title: Re: Hanglejátszó fejlesztése
Post by: ergoGnomik on 2015.December.14. 17:05:06
egy leírás a specys zene lejátszókról
http://battleofthebits.org/lyceum/View/zxbeep+(format)/
Ez inkább csak egy felsorolás mint leírás. Bár gondolom link mindhez mutat.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.14. 10:42:29
Kísérleteim WAV fájlokkal.
Fogtam egy 8 bites wav-ot, levágtam a fejlécét, maradt a nyers adat.

Aztán fogtam és bájtjait kiküldtem a 0a8h portra, persze előtte kétszer jobbra shift-elve, hogy beleférjek a 6 bites D/A korlátba.

Code: [Select]
foreach (byte a in rawSampleData)
  outPort(0xa8, a >> 2);

Na, tök jól szól (persze nem pont azzal a sebességgel, és hangmagasságal, mert arra nem figyeltem)

Hogyan lehetne azt elegánsan megcsinálni, hogy pontosan változtassam a hangmagasságot? Csak NOP-ok beszúrásával a két port írás között? Vagy van elegánsabb megoldás is?

Pl. lenne egy rövid (pl. 1mp hosszú) vonós / zongora stb. sample-m, és abból akarnék dallamot összerakni.


Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2018.November.14. 11:36:49
Hogyan lehetne azt elegánsan megcsinálni, hogy pontosan változtassam a hangmagasságot? Csak NOP-ok beszúrásával a két port írás között? Vagy van elegánsabb megoldás is?

Ez a programtól függ, ha a lejátszás közben más is történik, akkor talán érdemesebb lenne megszakítással időzíteni, egyébként jó lehet a NOP-os megoldás is. Még az is kérdés lehet, hogy fontos-e a 4 MHz-esnél gyorsabb gépeken is a helyes magasság.
Title: Re: Hanglejátszó fejlesztése
Post by: ergoGnomik on 2018.November.14. 11:39:19
Hogyan lehetne azt elegánsan megcsinálni, hogy pontosan változtassam a hangmagasságot? Csak NOP-ok beszúrásával a két port írás között? Vagy van elegánsabb megoldás is?

Pl. lenne egy rövid (pl. 1mp hosszú) vonós / zongora stb. sample-m, és abból akarnék dallamot összerakni.
Először is nyilván időzítő megszakításból kell játszani a hangot. Másodszor ha normális eredményt akarsz, akkor célszerű úgy csinálni, mint a hullámtábla szintézises hangkeltőknél szokás: a lejátszani kívánt hangmagasságokhoz legyen külön mintád, természetesen a mintavételi sebesség és a sávszélesség szerint szűrve. Harmadszor lehet próbálkozni a fázisgyűjtő oszcillátorhoz hasonló technikával, természetesen csökkenő hangminőség mellett: a mintákat úgy lépteted, hogy futtatsz mondjuk egy 8 bites additív számlálót, és csak akkor lépsz új mintára, ha ez a frissítéskor túlcsordult.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.14. 14:05:25
még egy kérdés:
ha két szólamot akarok összekeverni, akkor az működik, ha átlagolom a két sample byte értéket?
Title: Re: Hanglejátszó fejlesztése
Post by: ergoGnomik on 2018.November.14. 14:11:46
még egy kérdés:
ha két szólamot akarok összekeverni, akkor az működik, ha átlagolom a két sample byte értéket?
Igen, de azt is megteheted, hogy az István-féle csatorna trükkel két független digitális hangot játszol le.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.14. 14:34:23
Igen, de azt is megteheted, hogy az István-féle csatorna trükkel két független digitális hangot játszol le.
sőt, jobb jutott eszembe: 2 csatorna esetén lehet sztereó, és nem kell foglalkozni a keveréssel :-)
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.14. 17:27:23
primitív rutinom eredménye:

csak egy szólam, NOP-okkal megoldva az időzítés a két out között, sajnos így nem igazán megoldható a két szólam, legalábbis én még nem jöttem rá, hogy kéne :-)

ugye ahhoz az OUT-oknak egyenlő időközönként kéne lennie, de nálam ez most változó, a hangmagasságtól függ, hogy hány NOP lesz a két OUT között

Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2018.November.14. 17:51:57
én úgy csináltam annak idején 2 szólamút, hogy rotáltam egy bájtot (vagy kettőt?) és felépítettem egy táblázatot, amiben egyre "sűrűbb" volt az 1 bit :)
és a rotálással ügye kijött a végén a bit, ami jelezte, hogy léptetni kell a digi hangot.

tehát pl:
00000000
10000000
10001000
10010010
10110010
10110110
11110111
stb
(de lehet hogy 2 bájt kellett mert így 1 bájton valszeg nem lehet túl sok hangmagasságot meghatározni)
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2018.November.14. 18:04:34
csak egy szólam, NOP-okkal megoldva az időzítés a két out között, sajnos így nem igazán megoldható a két szólam, legalábbis én még nem jöttem rá, hogy kéne :-)

Fix lejátszási frekvenciával, és az aktuális pozíciót (ami jelenleg DE) tört formátumban tárolva. Ez ugyan rosszabb minőségű, de lehetővé teszi a több szólamú hangot. Itt a DE.H a pozíció, az L pedig a sebesség tört része, két szólamnál használható lenne a DE' és HL', de jobban is lehetne optimalizálni:
Code: ZiLOG Z80 Assembler
  1. l1:     ld      a, (de)
  2.         out     (0ach), a
  3.         dec     bc
  4.         ld      a, b
  5.         or      c
  6.       ; ld      a, d
  7.       ; cp      high SAMPLE_END
  8.         ret     z
  9.         ld      a, h
  10.         add     a, l
  11.         ld      h, a
  12.         jr      c, l2
  13.         nop
  14.         defb    3eh                     ; = LD A, n
  15. l2:     inc     de
  16.         nop
  17.       ; ...
  18.         nop
  19.         jr      l1

A NOP-os módszer továbbfejleszthető lenne 1 ciklus felbontásúra is.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.14. 19:13:07
Fix lejátszási frekvenciával, és az aktuális pozíciót (ami jelenleg DE) tört formátumban tárolva. Ez ugyan rosszabb minőségű, de lehetővé teszi a több szólamú hangot. Itt a DE.H a pozíció, az L pedig a sebesség tört része, két szólamnál használható lenne a DE' és HL', de jobban is lehetne optimalizálni:

Na, miután megértettem, mire gondolsz a tört formátum alatt, elkészült ez a verzió is:
Kicsit zajosabb (a tempó nem ugyanaz, arra nem figyeltem most):

szerk: közben azon gondolkozom, vajon javítaná a minőséget, ha a H regisztert nulláznám minden egyes újabb hang lejátszása előtt
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.14. 19:18:34
Fix lejátszási frekvenciával, és az aktuális pozíciót (ami jelenleg DE) tört formátumban tárolva.
Tetszik a trükk, és mindkét esetben pontosan 87 órajelenként van az OUT. Az javítana-e, ha két NOP-ot kivennénk a végéről, így kvázi növelnénk a sample rate-t kb. 10%-kal. Bár sok értelmét máskülönben meg azért nem látom, mert a második szólam hozzáadásával rögtön le is feleznénk a sample rate-t...
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2018.November.14. 20:21:12
Az javítana-e, ha két NOP-ot kivennénk a végéről, így kvázi növelnénk a sample rate-t kb. 10%-kal. Bár sok értelmét máskülönben meg azért nem látom, mert a második szólam hozzáadásával rögtön le is feleznénk a sample rate-t...

A két NOP csak példa, természetesen módosítható a várakozás vagy törölhető. 87 ciklus az 45977 Hz mintavételezési frekvencia 4 MHz-es gépen, két szólamnál is még elfogadható lehet.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.15. 15:02:42
újabb verzió, még mindig csak 1 szólam, de most 16 bites törtrész használata, hogy pontosabb legyen a frekvencia, a mintavételezés jelenleg 44.444kHz
Title: Re: Hanglejátszó fejlesztése
Post by: ergoGnomik on 2018.November.15. 15:39:36
... a mintavételezés jelenleg 44.444kHz
44 megahertz! :shock: Azta!

:ds_icon_cheesygrin: Peace, man!
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2018.November.15. 16:48:20
Próbálkozás két szólamra:
Code: ZiLOG Z80 Assembler
  1. ; HL = -duration in samples (30534 Hz)
  2. ; DE = sample address L
  3. ; BC = pitch L
  4. ; DE' = sample address R
  5. ; BC' = pitch R
  6.  
  7. play_sample:
  8.         ld      ix, 0
  9.         exx
  10.         ld      hl, 0
  11.         exx
  12.         defb    0f6h                    ; = OR n
  13. .l1:    inc     h                       ;   4
  14.         ret     z                       ;   9
  15. .l2:    ld      a, (de)                 ;  16
  16.         exx                             ;  20
  17.         out     (0a8h), a               ;  31
  18.         ld      a, (de)                 ;  38
  19.         out     (0ach), a               ;  49
  20.         add     hl, bc                  ;  60
  21.         jr      c, .l3                  ;  72
  22.         nop                             ;  71
  23.         defb    3eh                     ; = LD A, n
  24. .l3:    inc     de                      ;  78
  25.         exx                             ;  82
  26.         add     ix, bc                  ;  97
  27.         jr      c, .l4                  ; 109
  28.         nop                             ; 108
  29.         defb    3eh                     ; 115
  30. .l4:    inc     de                      ; 115
  31.         inc     l                       ; 119
  32.         jr      z, .l1                  ; 131
  33.         nop                             ;  -1
  34.         jp      .l2                     ;   9
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.19. 19:12:12
próbálkozás két szólammal: (a sample-k és a zene "kottája" a Commodore +4 változat forrásából kiszedve, és átalakítva, a kitömörítő rutin pedig István műve :-))

most már mehet hozzá az LPT trükkös repülő macska is :-)
Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2018.November.19. 20:26:11
próbálkozás két szólammal
Nem rossz! Kicsit zavaró, hogy a két szólam két különböző oldalról szól, így nem "hallatszanak egyben". A basszus mehetne középről, a másik szólam kicsit jobbról, a lecsengés közben fokozatosan balra átmehetne a hang.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.20. 12:51:46
no, összerakva a Nyan Cat-tel (vigyázat!!! nem EXOS kompatibilis!!!) (majd később az lesz)

Title: Re: Hanglejátszó fejlesztése
Post by: szipucsu on 2018.November.20. 13:01:59
vigyázat!!! nem EXOS kompatibilis!!!
Nálam attól még szépen fut - a program is és a macska is.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.20. 13:11:32
Nálam attól még szépen fut - a program is és a macska is.
persze, persze, a futásnak nincs köze hozzá
a nem exos kompatibilitás azt jelenti, hogy nem igénylek videólapot (kettőt is), hanem csak puff, belapozom, és felülírom a tartalmát, szóval ha ott volt valami hasznos dolog (pl. RAMDISK), akkor annak lőttek :-)
ráadásul EP64-en nem is működne.
Title: Re: Hanglejátszó fejlesztése
Post by: IstvanV on 2018.November.20. 18:06:03
a kitömörítő rutin pedig István műve :-)

Bár nem sok jelentősége van, de ennél a rutinnál található újabb az emulátor forráskódjában (util/epcompress/z80_asm alatt). A 2.0.11.2 (https://enterpriseforever.com/ep128emu/ep128emu/msg70203/#msg70203) csomag támogat újabb formátumokat is, amik hatékonyabbak lehetnek.
Title: Re: Hanglejátszó fejlesztése
Post by: Povi on 2018.November.20. 20:30:42
véglegesnek gondolt verzió:
https://enterpriseforever.com/letoltesek-downloads/enterprise-software/?action=dlattach;attach=22175
Ez már exos kompatibilis, ha nem kapja meg az FC és FD szegmenseket, akkor kilép. EP64-en nem megy, de azon úgyis baromi lassú lenne, nem lennének jók az időzítések. ESC-kel ki lehet lépni
Title: Re: Hanglejátszó fejlesztése
Post by: geco on 2018.November.21. 21:04:43
jó lett :)
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2018.December.12. 13:35:15
azon gondolkodtam, mi van akkor ha egy digi hangot úgy játszunk le, hogy 1 hangmintával eltolva minden csatornán. elvileg így jobb hangminőség lesz, és maga a hang nem lesz hallhatóan más, hiszen csak 1 minta eltolás van.
ha nem d/a-val akarjuk akkor pl. a 3 csatorna 2 hangerő kimenete az ügye 6 csatorna. így 6 minta eltolás lesz a max, az se fog érezhetően más hangot adni, de a hangminőség elvileg jobb lesz, és továbbra is csak 1 darab 6 bites hangmintánk van.
Title: Re: Hanglejátszó fejlesztése
Post by: ergoGnomik on 2018.December.12. 14:28:01
Ez nekem valamiféle egyszerű alul-áteresztő szűrőnek tűnik, de majd István vagy LGB kijavít. Ettől nem tudom mitől lenne jobb a hangminőség, inkább csak tompább lesz, legfeljebb. Ha nem tudod feljebb vinni a minta bitmélységét, akkor a mintavételezési gyakoriság növelésével tudsz csak javítani a minőségen. Szerintem. Esetleg próbálkozhatsz valamiféle hibrid PCM és szigma-delta modulációval, de ahhoz is nagy mintafrekvencia kell.
Title: Re: Hanglejátszó fejlesztése
Post by: endi on 2018.December.12. 15:00:26
attól lesz jobb a hangminőség hogy az egymás melletti hangminták összemixelődnek, ezáltal "több bit" lesz, persze, lehet hogy tompább is lesz a hang, de nem biztos hogy ez mindig hallható lesz.