Welcome, Guest. Please login or register.


Author Topic: Hanglejátszó fejlesztése (Read 70396 times)

Offline endi

  • EP addict
  • *
  • Posts: 6754
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Hanglejátszó fejlesztése
« Reply #105 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. :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline endi

  • EP addict
  • *
  • Posts: 6754
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Hanglejátszó fejlesztése
« Reply #106 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 :))
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.6 Firefox 3.6.6
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Hanglejátszó fejlesztése
« Reply #107 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.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 6754
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Hanglejátszó fejlesztése
« Reply #108 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.
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline endi

  • EP addict
  • *
  • Posts: 6754
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Hanglejátszó fejlesztése
« Reply #109 on: 2010.July.24. 21:56:54 »
na, talátam egy nagyon érdekes java programot
hanggenerátor

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!
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline endi

  • EP addict
  • *
  • Posts: 6754
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Hanglejátszó fejlesztése
« Reply #110 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. :)
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.9 Firefox 3.6.9
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Hanglejátszó fejlesztése
« Reply #111 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.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Online geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 4.0.1 Firefox 4.0.1
    • View Profile
Re: Hanglejátszó fejlesztése
« Reply #112 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á?

Offline szipucsu

  • EP addict
  • *
  • Posts: 7336
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Hanglejátszó fejlesztése
« Reply #113 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 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).
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: Hanglejátszó fejlesztése
« Reply #114 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").

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: Hanglejátszó fejlesztése
« Reply #115 on: 2011.September.21. 16:46:52 »
A frissebb link nem mûködik: :(

Itt a teljes csomag (konverter + forráskód + SNDPLAY):
  * epsndconv_1.02.7z (680.18 kB - downloaded 216 times.)
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.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13070
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 6.0.2 Firefox 6.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: Hanglejátszó fejlesztése
« Reply #116 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?

Online geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 6.0.2 Firefox 6.0.2
    • View Profile
Re: Hanglejátszó fejlesztése
« Reply #117 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?

Online geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 6.0.2 Firefox 6.0.2
    • View Profile
Re: Hanglejátszó fejlesztése
« Reply #118 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:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4753
  • OS:
  • Linux 64 bit Linux 64 bit
  • Browser:
  • Firefox 5.0 Firefox 5.0
    • View Profile
Re: Hanglejátszó fejlesztése
« Reply #119 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.