Welcome, Guest. Please login or register.


Author Topic: SID lejátszó (Read 249407 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #195 on: 2017.January.28. 11:44:23 »
még nem teszteltem, fájlt még nem generáltam hozzá

Ha a formátum nem változott ehhez a leíráshoz képest, akkor az itt található dave_data.bin példával működnie kellene.

Quote
0-ás lapon a program, és a 3 tábla

Ezt nem egészen értem, a táblázatok nem 24K területet igényelnek? :oops: Legalábbis 5 bites hangerőnél, 3 * 32 * 256 = 24576. Vagy van megoldás arra, hogy kisebb helyen is elférjen, esetleg marad a 4 bites hangerő (nem tudom, mennyire hallható a különbség)?

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #196 on: 2017.January.28. 12:03:29 »
Ha a formátum nem változott ehhez a leíráshoz képest, akkor az itt található dave_data.bin példával működnie kellene.
Köszi, pár perce eszembe jutott nekem is körülnézni, csak nem jutottam odáig.
A sidrec.lua hogy működik?
Betöltöttem a SIDPLAY-t elindítottam a sidre.lua-t, de nem csinált semmit, mit szúrtam el?

Ezt nem egészen értem, a táblázatok nem 24K területet igényelnek? :oops: Legalábbis 5 bites hangerőnél, 3 * 32 * 256 = 24576. Vagy van megoldás arra, hogy kisebb helyen is elférjen, esetleg marad a 4 bites hangerő (nem tudom, mennyire hallható a különbség)?
A 3*16*256-nál maradtam a tábláknál, nem tudom mennyire hallható a különbség, szerintem jó lesz :) a négyszögjel használja a 32 hangerő értéket.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #197 on: 2017.January.28. 12:11:26 »
Ja, az utolsó 8 byte-ra azt találtam ki, hogy ebből az utolsó 2 a hosszt tárolja úgy, hogy 682 - betöltött bájtok, ha az egész 8Kb-s blokk adatot tartalmaz, akkor 0000h lesz az értéke, ha csak 300 byte aktív adat van regiszterenként, akkor 382 lesz az értéke.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #198 on: 2017.January.28. 12:13:53 »
Köszi, pár perce eszembe jutott nekem is körülnézni, csak nem jutottam odáig.
A sidrec.lua hogy működik?

Csak SID kártya módban használható, ilyenkor a 0Fh portra írt regiszter értékeket menti. A file név a kód elején állítható. Problémát jelenthet hogy a SIDPLAY alapértelmezés szerint DAVE módban indítja a lejátszást, ezért azt mindig át kell állítani, és a zene eleje így elveszhet. :oops:

Quote
A 3*16*256-nál maradtam a tábláknál, nem tudom mennyire hallható a különbség, szerintem jó lesz :) a négyszögjel használja a 32 hangerő értéket.

Ha a bemeneti file nem túl nagy (6000h alatt elfér, ami ~20K méret lehet), akkor lapozás nélkül is megoldható az 5 bites hangerő. De még lapozással is gyorsabb a régi 9 bites táblázat címzésű lejátszó rutinnál. Lapozás nélkül viszont talán egy keveset lehetne növelni a frekvencián még 4 MHz-en is. Esetleg lehetne külön 4 bites verzió is ami nagyobb file méretet támogat, nem tudom, milyen gyakran lenne kevés a 20K. A tömörítésen is lehetne javítani valamennyit egy módosított epcompress verzióval, a -maxoffs használható értéke ugyanis változik a blokkon belül, az elején 8192, az utolsó byte-nál azonban még a 16383 is működne, így a fix 8192 nem optimális.
« Last Edit: 2017.January.28. 12:30:25 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #199 on: 2017.January.28. 12:32:42 »
Jobban meggondolva nem is kell módosított epcompress, mivel az adat egy 16K méretű cirkuláris pufferbe kerül, valójában a -blocksize 8192 -maxoffs 16384 eredményezi a leghatékonyabb tömörítést ami még használható a lejátszóban. :oops:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #200 on: 2017.January.28. 12:42:55 »
Ja, az utolsó 8 byte-ra azt találtam ki, hogy ebből az utolsó 2 a hosszt tárolja úgy, hogy 682 - betöltött bájtok, ha az egész 8Kb-s blokk adatot tartalmaz, akkor 0000h lesz az értéke, ha csak 300 byte aktív adat van regiszterenként, akkor 382 lesz az értéke.

Módosítva:
[ Guests cannot view attachments ]     (fordítás: g++ -Wall -O2 -march=native sid_conv.cpp -o sid_conv -lm -s)

A -maxoffs 16384 a korábbi Cybernoid II példa méretét 9148-ról 7967 byte-ra csökkentette. :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #201 on: 2017.January.28. 12:53:59 »
Csak SID kártya módban használható, ilyenkor a 0Fh portra írt regiszter értékeket menti. A file név a kód elején állítható. Problémát jelenthet hogy a SIDPLAY alapértelmezés szerint DAVE módban indítja a lejátszást, ezért azt mindig át kell állítani, és a zene eleje így elveszhet. :oops:
Eddig stimmt, nyomtam bőszen az F3-at miután megadtam a betöltendő file-t.
f = io.open("sid_data.bin", "wb")-re írtam át, hagytam egy darabig futni, majd nyomtam egy ESC-et, és elkezdtem keresgélni a fájlkeresővel, nem találta, annyi, hogy Winfos alatt futtattam, Linux alatt megpróbáltam, de valami nem tetszik neki, be se tölti a sidplay-t, amikor betöltené a PRG-t, dob az EXOS 1 egy 0CFh-t (File IO, EXDOS nélkül), úgy emlékszem ez EXDOS hiba, most meg is néztem, File not found.
Ha a bemeneti file nem túl nagy (6000h alatt elfér, ami ~20K méret lehet), akkor lapozás nélkül is megoldható az 5 bites hangerő. De még lapozással is gyorsabb a régi 9 bites táblázat címzésű lejátszó rutinnál. Lapozás nélkül viszont talán egy keveset lehetne növelni a frekvencián még 4 MHz-en is. Esetleg lehetne külön 4 bites verzió is ami nagyobb file méretet támogat, nem tudom, milyen gyakran lenne kevés a 20K. A tömörítésen is lehetne javítani valamennyit egy módosított epcompress verzióval, a -maxoffs használható értéke ugyanis változik a blokkon belül, az elején 8192, az utolsó byte-nál azonban még a 16383 is működne, így a fix 8192 nem optimális.
Szerinted sokat számítana az 5bites hangerő használata a háromszög, fűrész, és zaj használatánál?
Szívesen átalakítom lapozósra, elméletileg most járunk 298+interrupt T-state-nél a lapozással 334+interrupt, 12 KHz-es lejátszásra egyikkel sem lehetne áttérni.
Azt én sem, hogy milyen gyakran lenne kevés a 20K, most megéztem a régi verzióhoz készült fájlokat, az egyik 21K-s, de a következő legnagyobb már csak 11K, az új verziónál lesz egy kis növekmény.
Nyerünk a módosított EPCOMPRESS-szel annyit, hogy érdemes csak ezért módosítani?
Elég jó file méreteket kapunk.
Mit ajánlasz, legyen két verzió, az egyik lapozós, a másik nem, és ez 10KHz-en fusson, és mind a kettő 5 bites?

Ja, első hangzásra az általad generált file jobban szól, mint az én régim, viszont szerintem az envelope emuláció egy helyen gyorsabban lefutó adatot generált, a többi helyen jónak tűnik. (rögtön az elején a 2 csatornán)
Ja, ne ijedj meg, ez még az én gagyi sampléimat használja :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #202 on: 2017.January.28. 13:10:10 »
Eddig stimmt, nyomtam bőszen az F3-at miután megadtam a betöltendő file-t.
f = io.open("sid_data.bin", "wb")-re írtam át, hagytam egy darabig futni, majd nyomtam egy ESC-et, és elkezdtem keresgélni a fájlkeresővel, nem találta

Ez az aktuális (rendszer, nem Alt+F) könyvtárba próbál menteni, ami nem biztos, hogy írható (pl. C:\Program Files\ep128emu2 normál felhasználóként). De akkor elvileg hibát kellene eredményeznie, bár Windowson nem lehet biztosan tudni. :oops: A legjobb lenne teljes útvonalat megadni, akkor egyértelmű hogy hol lesz a file. :)

Quote
Linux alatt megpróbáltam, de valami nem tetszik neki, be se tölti a sidplay-t, amikor betöltené a PRG-t, dob az EXOS 1 egy 0CFh-t (File IO, EXDOS nélkül), úgy emlékszem ez EXDOS hiba, most meg is néztem, File not found.

Talán az Alt+F nem jól van beállítva? A PRG-t már ott keresi.

Quote
Szerinted sokat számítana az 5bites hangerő használata a háromszög, fűrész, és zaj használatánál?

Kisebb hangerőnél szerintem észrevehető lehet (a SID burkológörbe generátora eredetileg 8 bites), de a legjobb lenne kipróbálni és összehasonlítani.

Quote
Szívesen átalakítom lapozósra, elméletileg most járunk 298+interrupt T-state-nél a lapozással 334+interrupt, 12 KHz-es lejátszásra egyikkel sem lehetne áttérni.

Ha 12-re nem is lehetne növelni, még a 9 is jobb lenne valamivel. :)

Quote
Nyerünk a módosított EPCOMPRESS-szel annyit, hogy érdemes csak ezért módosítani?

Amint írtam, valójában egyszerű -maxoffs 16384 is működne a rendes verzióval, és az szerintem 20K alá csökkentené a legnagyobb file méretét, ha a javulás mértéke hasonló a Cybernoid II-höz.

Quote
viszont szerintem az envelope emuláció egy helyen gyorsabban lefutó adatot generált, a többi helyen jónak tűnik.

Az nem kizárt, hogy a burkológörbe emuláció bugos (a reSID alapján készült, de egyszerűsítve), még tesztelni kellene. :oops: De ha csak a file elején van hiba, akkor a mentésnél (sidrec.lua) is lehetett a probléma. A script akkor sem működik megbízhatóan, ha egy megszakítás alatt többször változik a trigger bit állapota (ezt részben már javítani próbáltam, de a Cybernoid II felvétel még a régebbi verzióval készült), talán jobb lenne a korábbi esemény alapú formátumra alakítani ha a mentett file egyébként is csak a sid_conv bemenete lesz.
« Last Edit: 2017.January.28. 13:19:49 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #203 on: 2017.January.28. 13:23:22 »
Ez az aktuális (rendszer, nem Alt+F) könyvtárba próbál menteni, ami nem biztos, hogy írható (pl. C:\Program Files\ep128emu2 normál felhasználóként). De akkor elvileg hibát kellene eredményeznie, bár Windowson nem lehet biztosan tudni. :oops: A legjobb lenne teljes útvonalat megadni, akkor egyértelmű hogy hol lesz a file. :)
Érdekes, mert a snapshotot oda mentette, nálam bonyolultabb a helyzet :) X meghajtóként van bamappolva a Linux Home könyvtáramban egy könyvtár azon belül van az ep128emu2, és azon belül vannak a játszós könyvtáraim is :), hacsak tényleg nem az eredeti helyére próbálna menteni, na majd adok meg egy elérési utat.
Talán az Alt+F nem jól van beállítva? A PRG-t már ott keresi.
Mostanában a Working Directory beállítása macerásabb linux alatt, ha bemegyek a könyvtárba, save -re nem áll át, csak ha beírom a könyvtár nevét, elméletileg jónak kéne lennie, mert F1-re is az ugrik fel.
Ha 12-re nem is lehetne növelni, még a 9 is jobb lenne valamivel. :)
Én hiszek neked :)
Amint írtam, valójában egyszerű -maxoffs 16384 is működne a rendes verzióval, és az szerintem 20K alá csökkentené a legnagyobb file méretét, ha a javulás mértéke hasonló a Cybernoid II-höz.
Csak később olvastam, mint én írtam :) Eddig azt hittem, hogy 16384-es maxoffs-szal nem működik a 8K-s kicsomagoló :).
Az nem kizárt, hogy a burkológörbe emuláció bugos (a reSID alapján készült, de egyszerűsítve), még tesztelni kellene. :oops:
De :) , úgy fest én szúrtam el valamit, áttértem a 2K-s táblázataidra, és a probléma volt-nincs, és szerintem teljesen jól szól, egy helyen hallottam érdekességet, de azt nem tudom mi lehet, még. A mostani állás szerint 6000h hosszú lehet a file, de még 400h-val lejjebb is vihetném a betöltés helyét.
Vagyis nem, mert jól felülcsaptam a zaj utolsó részét.
elméletileg 6c00h-ra tölthető a fájl.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #204 on: 2017.January.28. 13:27:58 »
Mostanában a Working Directory beállítása macerásabb linux alatt, ha bemegyek a könyvtárba, save -re nem áll át, csak ha beírom a könyvtár nevét

Ez a Gtk-s file választó ablak bosszantó tulajdonsága, nem belépni kell a könyvtárba, hanem csak a felette levőben kiválasztani.

Szerk.: egy kevés helyet azzal is meg lehetne takarítani, ha nem lennének 0 hangerejű táblázatok és a konvertáló program 0 hangerő helyett 0 kitöltési tényezőjű négyszögjelet írna.
« Last Edit: 2017.January.28. 13:46:44 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #205 on: 2017.January.28. 13:51:39 »
Szerk.: egy kevés helyet azzal is meg lehetne takarítani, ha nem lennének 0 hangerejű táblázatok és a konvertáló program 0 hangerő helyett 0 kitöltési tényezőjű négyszögjelet írna.
Jó ötlet, és még átteszem a file választót egy másik szegmensre, ezzel is pár KB-ot.
SIDREC.LUA is műxik már, ha megadom az útvonalat is :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #206 on: 2017.January.28. 14:10:31 »
Hogy kell a sid_conv-t használni?
./sid_conv infile outfile -lal mintha a default beviteli eszközről kérné az adatot, a billentyűzetről.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #207 on: 2017.January.28. 14:24:57 »
Vagyis nem, mert jól felülcsaptam a zaj utolsó részét.

Ha a táblázatok a sidwavs8.s-el készültek, az 2000h-val osztható kezdőcímet tételez fel. :oops: De ez a verzió már nem, és a 0 hangerejű táblázatokat sem generálja, tehát csak 5D00h a teljes méret:
[ Guests cannot view attachments ]

./sid_conv infile outfile -lal mintha a default beviteli eszközről kérné az adatot, a billentyűzetről.

./sid_conv < infile > outfile

Paraméterként megadható a blokk méret, ami alapértelmezés szerint 8192.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #208 on: 2017.January.28. 14:34:09 »
Kúúúl, köszi, és köszi, konvertált a SID_CONV :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #209 on: 2017.January.28. 14:37:22 »
0 hangerejű hullámformák cseréje 0 kitöltési tényezőjű négyszögjelre:
[ Guests cannot view attachments ]