Ezen a lapon az eredeti Primo kazettás programok emulátorokhoz használható PTP formátumba illetve onnan vissza való konvertálásáról írjuk le a tudnivalókat.
Egy kérés: Ha az itt leírtak alapján sikerül PTP fájlt készítened, és az még nem elérhető a honlap programjai között, akkor légy szíves küldd el nekünk is, így a lapon publikálhatjuk a sikeresen átkonvertált programokat.
Lépések és eszközök:
A kazettáról való konvertálás alapötlete
A kazetták konvertálása nem egyszerű. Miért? Nos a Primo hangfelvételről és a visszaolvasásáról mind a hardver mind a szoftver füzet ír. A hardver füzetben megtaláljuk a kimenet és a bemenet kapcsolási rajzát is. Ezek közül a bemenet a bonyolultabb, ugyanis a visszaolvasáskor a Primo-nak a jelet unipolarizálni és szűrni is kell. Mindezt a bemenet aktív erősítős fokozata tökéletesen elvégzi, ezért a Primo még aránylag rossz minőségű jeleket is képes beolvasni. Sajnos a PC esetében nincs magnó interfész, így mindent magunknak kell csinálni.
Az eredeti elgondolásom az volt, hogy egy viszonylag egyszerű RC illesztéssel az LPT port egy bemeneti bitjén a visszaolvasás megvalósítható. Ez igaz is abban az esetben, ha a magnó és a felvétel minősége megfelelő. Ha viszont egy kicsit is rosszabb a minőség, akkor a Primo-ba épített erősítő/szűrő fokozat már mindenképpen szükséges. Mivel ilyennel külön nem rendelkezem és megépíteni sem volt kedvem, egy áthidaló megoldást választottam: Egy eredeti Primo gép képes beolvasni a magnóról a programokat, aztán, ha ezeket "kimentjük" és a PC hangkártyával közvetlenül ezt a kimenő jelet digitalizáljuk, akkor annak a minősége már feldolgozható lesz.
Két programot készítettem ehhez:
Ehhez a feladathoz szükséges valamilyen Windows alapú program, amely képes a hangkártya MIC vagy LINE-IN bemenetéről felvételt készíteni. A Windows beépített hangrögzítő (kellékek/szórakozás) programja is jó. A Primo kimenetét kösd rá a hangkátya megfelelő bementére. A felvételkor használj minél nagyobb bemeneti erősítést, az a jó, ha a Primo jelét minél nagyobb amplitúdóval tudod áttenni a WAV fájlba. A WAV fájlra nézve teljesülnie kell az alábbi kritériumoknak:
Természetesn lehet jobb minőségű felvételt is készíteni, de ezt később mindenképpen erre az alakra kell konvertálni, hogy a fenti programok használni tudják. (A konvertálást a beépített Hangrögzítő meg tudja csinálni.)
Figyelem! Előfordul, hogy a hangfájlt a programok nem ismerik fel, bár megfelel a fenti kritériumoknak. Ennek oka, hogy az egyes hangrögzító programok eltérnek a WAV formátumtól. Ekkor segít a Hangrögzítőbe betöltés, majd változatlanul kimentés.
A Wavview program
Amikor a felvétel megvan, meg kell határozni,
hogy milyen komparálási szinttel akarsz dolgozni. Erre szolgál a wavview
program. Ez szintén egy DOS-os, Windows alatt is működő program, amely standard
VGA felbontású grafikus képet (640x480, 16 szín) használ.
Paraméter nélkül indítva kiírja a megjelenítéskor használható billentyűket.
D:\work\PRIMO>WAVVIEW.EXE
USE: wavview wavfile
Control keys in graph
mode:
[Cursor-Left]
[Cursor-Right] moving one page forward/back
[+] [-] moving 10 pages forward/back
[Cursor-Up]
[Cursor-Down] change the "sampling level"
[ESC] Quit
Egy jó jelalak
Elsőként nézzünk meg egy használható jelet. Ezt közvetlenül a Primo magnó kimenetéről mintavételeztem:
Az zöld színnel feltüntetett hullámalak a tulajdonképpeni hang. Jól látható, hogy a hangerő igen magas volt, ezért az impulzusok kitöltik a teljes értéktartományt. A vastag impulzusok a 0 bitet, a vékony impulzusok pedig az 1 bitet reprezentálják. A képen a fájl bevezető 0-1-0-1... impulzus sorozatot láthatjuk. Az is látható, hogy a pozitív-negatív tartományok miatt tulajdonképpen minden bit kétszer kerül a magnóra, egy teljes periódus ugyanis ugyanazt a bitet tárolja mindkét félben. A minatvételező program egyébként csak a pozitív tartományban dolgozik majd, ezért a szaggatott sárga vonallal be lehet állítani (illetve itt csak látni lehet), hogy mi legyen a komparálási szint. A komparálási szint alatti értékeket a feldolgozó program zajnak tekinti. Jelen esetben a jelalak olyan szabályos, hogy igazából nincs értelme a komparálási szintet megváltoztatni.
Egy rossz jelalak
A következő példa egy rossz mintavételezést mutat. Ebben az esetben a minatvételi frekvencia csupán 8000 Hz és az amplitúdó sem megfelelő:
Ebben az esetben a vékony (1 vagy 2 pixel széles) jelek amplitúdója sokkal magasabb, mint a vastag (4-5 pixel széles) jeleké. A minta talán feldolgozható, talán nem. Az esetek nagy többségében inkább nem.
Még egy rossz jelalak
Most lássunk egy olyan WAV-ot, amelyet közvetlenül a magnóról mintavételeztem. A képen jól látható, hogy noha a jel amplitúdója és a mintavételi frekvencia is megfelelő, a különböző zavarok miatt ez a jel kiértékelhetetlen. Ezeket a zavarokat szűri ki a Primo magnó bemeneti interfész. (Az én programom azonban nem vállalkozik erre algoritmikus úton.)
Összefoglalva: Awavview programmal meg tudod nézni a digitalizált hang hullámalakját. Igyekezz olyan alakot elérni, amilyen a legelső ábrán látható, akkor az átalakítás PTP fájlba biztosan sikerülni fog.
Ez a program megpróbálja a megadott WAV fájlt feldolgozni és abból kinyerni a Primo programot. Használata egyszerű: meg kell neki adni a bemeneti WAV fájl nevét, a kimeneti PTP fájl nevét, illetve a komparálási szintet. Az alábbi példa egy sikeres átalakítás menetét mutatja:
D:\work\primo>WAV2PTP.EXE
copyks31.wav out.ptp 32
!!! Comparison limit set to 32 !!!
WAVE file IDs found
Sample frequency = 8000
8 bit samples, good.
WARNING: this is not a 22050 Hz sampled WAV
Noiselimit=0 bitlimit=3
DATA found, pos=44, length=298028
Press ENTER to parse the WAV or ESC to quit
SearchFileSync ...OK
#00 COPY BY K.S. 3.1 BASIC program
#01 Machine-code #02 END-block
Autotart addr=20480.
File append... (out.ptp)
DONE.
Mint fentebb írtam, az átalakítás sikere nagymértékben a bemenő WAV-ban tárolt hang minőségének függvénye, tehát nem tudok semmit sem garantálni. Mindenképpen próbáld az eredeti PRIMO kimenő jelét digitalizálni a fentebb megadott módon, akkor jól kell működnie az átalakítónak is. Nekem ez a módszer bejött.
Elkészült a PTP2WAV visszaalakító program, amely egy meglévő PTP fájlból WAV-ot csinál. Ennek segítségével a PC-n szerkesztett vagy készített programokat az eredeti Primo-ra is vissza tudjátok tölteni. A visszaalakított WAV esetében a követelmények nem olyan szigorúak, mint a PTP fáljok készítése esetében, ezért itt csupán 8000 Hz-es mintavételt alkalmaztam. A Primo ezt még biztonságosan vissza tudja olvasni.
Itt a Primo honlapon már jónéhány, sikeresen konvertált program elérhető, a bal oldali menü Programok / Letöltés részében. Ezek a PTP formátumban tárolt programok hangként közvetlenül is lejátszhatók illetve hangfájlként letölthetők a primowebplay böngésző kiegészítő script segítségével:
primowebplay
tampermonkey script to play PTP directly from the web for Primo
Script is configured to run by default on http://primo.homeserver.hu/ but should run on any other site, just check the queryselector also as for PTP links look for paragraph as parents.
Based on PTP2WAV.PAS
Az eszköz fejlesztője háttérként ezt írta: "Röviden, browserből kattintható play és wav gomb a PTP file-ok mellett, egy tampermonkey script segítségével. A PTP2WAV.PAS alapján lett írva. 90-ben iskolám, a kolozsvári Báthory István Elméleti Líceum kapott két darab Primo A64-et, ami a 90-es évek végén a szemétből hozzám került. Egyik sosem működött máig, most javítottam meg, s jobb ötletem nem volt a teszteléshez..."
A wavview program elérhető itt: wavview.zip
A wav2ptp
és ptp2wav konverterek elérhetők Varga Viktor
GitHub oldalán: Primotools
A Win32 verziók közvetlen linkjei letöltésre:
A primowebplay elérhető a szerző GitHub oldalán: primowebplay
(Joco, Varga Viktor)