Welcome, Guest. Please login or register.


Recent Posts

Pages: [1] 2 3 4 5 6 7 8 ... 10
1
BASIC / Re: Magyar népzene SOUND paranccsal
« Last post by szipucsu on Yesterday at 23:39 »
Nagyjából rájöttem, mi lehetett a gond a ritmussal, de nem értem az okát. Nem az kell, hogy kétszer fusson le a várakoztatási ciklus kétszer olyan hosszú hang esetén, hanem hatványozni kell a hanghosszt. Ez érdekes, mert a kétszer akkora szám a várakozásnál és a DURATION-nél is kétszer akkora, szóval lehet, hogy egy fekete lyuk közeledik a Föld felé, ezért hülyült meg a téridő kontinuum, és jobb esetben csak a Naprendszernek, rosszabb esetben az egész Galaxisnak kampec. De még mielőtt ez bekövetkezne, talán még ki tudjuk próbálni a népdalgeneráló szoftver új verzióját.
A hangzáson is pofoztam egy kicsit, gyűrűmoduláció nélkül az Enterprise zene olyan, mint a Fidesz Orbán Viktor nélkül.
Közben az is kiderült, hogy ha SYNC-kel össze van kapcsolva egymással a két csatorna, akkor az INTERRUPT paraméter fabatkát sem ér, ez is fura, mert ha mindkét csatornára beteszem az interruptot, működnie kéne. Helyette a release nevű rafinériát pakoltam bele az envelope numberbe, a SOUND-nál meg DURATION 1-et adtam meg, így a még szóló, de mégsem szóló hangot megszakítja a következő hang, ha tetszik, ha nem. A két sound-nak két külön envelope-t is csináltam, mert sztereó hang nélkül az Enterprise zene olyan, mint a cauldronos néni seprű nélkül.
Megszüntettem a DO-LOOP ciklust, helyette FOR ciklusban olvassa be az adatokat. Elsőre nagyon nagy számot adtam meg a TO után, majd a hiba után kiírattam a ciklusváltozó értékét, abból kivontam egyet, és az került a TO után, így nem kell egyesével megszámolni, hány hang van összesen.
Egész jó ötlet ez a program. Így most hallgatás közben a zene hangjait is tanulmányozhatjuk. Ebből már azt is meg lehetne csinálni, hogy kotta formátumban rakja ki a hangokat. Esetleg a kottát ki is lehessen nyomtatni, ha a másik topikban sikerül életre kelteni azt a nyomtatót.
(Volt egyszer egy basic program, amiben kotta formátumban lehetett egyszerű zenét szerkeszteni. Nem volt tökéletes, de nagyjából működött. Nem tudom, megvan-e valahol. Egy cserepartnerem küldte anno.)
2
BASIC / Re: Magyar népzene SOUND paranccsal
« Last post by szipucsu on Yesterday at 22:55 »
Kicsit bütyköltem vele, valami ilyesmi lenne. Csináltam neki ENVELOPE-ot, amitől kicsit sztereó is lett. Viszont mintha a ritmus nem lenne teljesen jó, de lehet, csak énnekem veszett el a ritmusérzékem, ami nem is volt. Ha tényleg nem jó a ritmus, akkor vagy a sok számítás a ludas, amivel a pitch értéket kiszámolja, és ez elviszi az időt, vagy a két FOR ciklusom. Azért lett 2 darab FOR ciklus a várakozásra, mert amikor csak egy volt, fura volt a ritmus, de most is fura.
Egy-két sor hozzáadásával a hangot sokkal érdekesebbé lehetne tenni, hogy ne sima négyszögjel legyen, hanem egészen SID-es hangzású.
3
1. nem tudom hogy lehet két hang közé rövid szünetet tenni.
Hivatalosan 0 hangerővel: LEFT 0,RIGHT 0. Időtartama mondjuk DURATION 1. (De, ha nagyon precízek akarunk lenni, akkor az előző hang hosszából 1-et ki kéne vonni, mert sok szünet után elcsúszhat a ritmus, ha például PC-s automata dobgéppel akarod nyomatni a kíséretet, akkor ez kiütközhet.) Ehhez a DATA sorban a SZUN nevű string jó lenne, és a READ után beírod, hogy IF valami$="SZUN" THEN SOUND LEFT 0,RIGHT 0,DURATION 1.
De én anno egyszerűen a 127-es PITCH értéket használtam szünethez.
Szobatiszta megoldás még, ha egy envelope numbert létrehozol, ahol az elején vagy felfut, vagy lecseng gyorsan a hang, így az egymás melletti azonos hangok nem folynak egybe.

A SET SOUND BUFFER nem azt a hangbuffert kezeli, amire gondoltál, hanem az envelope-ok számára fenntartott hely méretét lehet vele állítani. Állítólag semmi más elől nem veszi el a helyet az se, ha maximális méretű, így akár mindig megadható lehetne a maximális 255 az alap 20 helyett, hátha teljesen véletlenül, de valami rejtélyes oknál fogva kell.
A bufferes problémád kiküszöbölésére más módszer kell. Például, nem a DURATION-ben adod meg a hosszt, hanem a PRINT után FOR ciklussal addig várakoztatod a gépet, ameddig a hang szól. Valami ilyesmi:

SOUND INTERRUPT, PITCH akármennyi, DURATION 200
PRINT hang neve, oktáv, hanghossz
FOR VARJUNK=1 to hanghossz*200
NEXT

Ha kevés az adat, a READ IF MISSING EXIT DO:A$,B,C vagy valami hasonló kell. De te nem használsz ciklust, hanem GOTO-t, ahogy látom, így ez most nem megoldható. Még a READ elé egy új sorban a WHEN EXCEPTION USE valami, a READ utáni sorban END WHEN nem engedi a hibát előbuggyanni, de ehhez kell a program végére pl. ez:

Code: [Select]
1000 HANDLER valami
1010   PRINT "Na, mi van, most nincs hiba!"
1020   END
1030 END HANDLER

4
A hang problémához ezeket találtam:

ENVELOPE
ENVELOPE £csat:NUMBER a;b,c,d.e;...
...;RELEASE;j,k,l,m;...
Egy hangburkolót határoz meg, amelyet majd a SOUND utasítás használ. A hangburkolót azonosító "a" számnak 0-254 között kell lennie. A b,c,d,e paraméterek egy hangfázist határoznak meg, ahol "b" a hangmagasság félhangokban,"c" és "d" a bal és a jobb oldali hangszóró hangerejét adja a max. hangerőhöz viszonyítva, végül "e" a fázis időtartama 1/50-ed másodpercekben. A "b" és a "c" 0-63-ig terjedhet. A -63 kikapcsolja a hangot, az értelmes tartományon kívül levő értékek pedig nem változtatják meg. A hangburkoló elején a hang ki van kapcsolva. Mono hallgatáskor a két csatorna összege szól. Egymás után több fázis adható meg, amíg a hangpuffer be nem telik. (L.: SOUND BUFFER a hang opcióknál.)
A RELEASE szó és az azt követő fázisok elhagyhatók. Ezek nem csak akkor szólalnak meg, ha az előttük levők véget értek, hanem ha a SOUND utasításban megadott időtartam lejárt, és nincs ugyanezen a csatornán más következő hang.

SOUND BUFFER
SET SOUND BUFFER kif
A legközelebb a "SOUND:" eszközre megnyitandó csatorna hangtárának a méretét adja meg hangfázisokban mérve (1-255). Az alapérték 20. Használható az ASK.

Talán ki tudod hámozni mi lehet a megoldás. Ami nekem feltűnik az az, hogy a puffer méretét a SOUND: eszközhöz rendelendő új csatorna megnyitása előtt kell megadni. Jelentsen ez bármit is, mert sajnos nem vagyok járatos ezekben.
5
Megkerestem a kézikönyvben ezeket:

PRINT
PRINT £csat, AT sorszám-kif,oszlopszám-kif:adatlista
PRINT £csat,USING sorszám:adatlista
PRINT £csat,USING formátumleírás:adatlista
Az adatlista eleme kifejezés vagy a TAB kulcsszó és az utána zárójelek között álló oszlopszám lehet. Az elemeket vesszők vagy pontosvesszők választják el. A kettő között az a különbség, hogy a vessző hatására a következő elem kiírását mindig a következő tabulátorpozíciónál kezdi, a pontosvessző esetén pedig közvetlenül az előző mező után (I. korábban: vonalzósor). A TAB hatására a kurzor a megadott oszlopra ugrik és ott folytatódik a kiírás. Az adatlista végén álló vessző vagy pontosvessző hatására nem generálódik sorvége jel az utasítás végén, így a kiírás ugyanabban a sorban folytatható. Parancsmódban is használható.
Az AT feltétellel a kurzor a kívánt helyre állítható, ilyenkor a szöveges koordináta-rendszert kell használni, amelynek a kiindulópontja a képernyő bal felső sarkában van és első paramétere a sorszámot, a második az oszlopszámot jelöli. A "PRINT AT 2,15: a$" tehát a második sor tizenötödik oszlopától kezdve írja ki az a$ tartalmát.
A USING feltétellel a kiírás formáját határozhatjuk meg vagy egy IMAGE utasításra mutató sorszám, vagy egy az ottanihoz hasonló formátumleíró lista megadásával.
Az utasítás alapértelmezésben a 102-es csatornára ír.

IMAGE
IMAGE: formátummegadás
A PRINT utasításokkal kapcsolatban a kiírási formát irányítja. A formátum megadás a következő vezérlőkarakterekből állhat:
,   - írj vesszőt a számba
$   - írj vezető dollárjelet az előjel elé
-   - írj vezető szóközt vagy - előjelet
+   - írj + vagy - előjelet
%   - írj egy számjegyet, vezető nullákat is
£   - írj egy számjegyet, vezető nullákat elhagyva
*   - írj egy számjegyet vagy egy vezető * jelet
.   - írj decimális pontot
^   írd ki az exponenst, minimum négy karakteren

Ha a szám nem felel meg a formátumnak, akkor ez hibaüzenetet okoz. Karaktersorozat formátum karakterek:
<   - A £ jelekkel megadott mezőben levő karaktersorozat balra igazítása
>   - Ugyanennek jobbra illesztése
£   - írj ki egy karaktert

Az illesztést meghatározó karakternek a mező előtt kell állnia, ha nem adjuk meg, akkor a mező tartalma középre állítódik. Az IMAGE utasításban a formátum meghatározás a : jeltől kezdve a sor utolsó karakteréig tart.

RENUMBER
RENUMBER sormeghatározás TO sormeghatározás AT kif STEP kif
RENUMBER blokknév AT kif STEP kif
A programnak, ill. egyes részeinek az újrasorszámozására alkalmas, csak parancsmódban alkalmazható. A STEP vagy az AT paramétert elhagyva, a kezdő sorszám 100, a lépésköz 10 lesz. Sortartomány megadása nélkül az egész programot újrasorszámozza. Az átsorszámozandó blokkot DEF vagy HANDLER blokk esetén a nevével is megadhatjuk. Egyéb tekintetben a sorszámtartomány megadására ugyanazok a szabályok vonatkoznak, mint a DELETE utasításra.
A programban levő valamennyi sorszámhivatkozást módosítja az új sorszámoknak megfelelően. A parancs hatására azonban a program sorainak sorrendje nem módosulhat. Az átsorszámozott sorok nem írhatják fölül és nem vehetik körbe a régieket, nem kerülhetnek a programon belül új helyre és természetesen sorszámuk nem haladhatja meg a lehetséges legnagyobb értéket (9999). Ilyen esetekben a gép nem hajtja végre a parancsot, a program változatlan marad.

READ
READ változólista
READ IF MISSING sorszám:változólista
READ IF MISSING EXIT DO:változólista
A DATA utasítással tárolt adatokat olvassuk be a változókba. Ha az adatok elfogyása után is olvasni akarunk, akkor az IF MISSING után meghatározott tevékenységet hajtja végre a gép.
6
Illesztések / Re: Datacoop DCD PRT-42G nyomtató
« Last post by ergoGnomik on Yesterday at 21:43 »
Hogy téged mennyire megtalálnak ezek a rejtélyes hibákat produkáló régi vasak! Ha jól gondolom az indexes Plus/4-es fórumban is dokumentáltál egy kalandot valami igen furcsán viselkedő masinával. Ha mégis keverlek valakivel, akkor elnézésedet kérem!
7
(English version below)

Írtam egy basic programot ami a szolmizációs hangokat lejátsza. Megkértem a feleségemet, hogy segítsen valami dalt leszolmizálni, mert ô ehhez jól ért.

A "Kis kece lányom" dalt választotta.
A progamot megpróbáltam mindenütt kommentálni, hogy érthetô legyen, mit akarok.

Volt néhány problémám, amit nem tudtam megoldani, mert már nagyon régen nem használtam az enterprise számítógépet.
1. nem tudom hogy lehet két hang közé rövid szünetet tenni. Az EP bepakol mindent a pufferbe, és egymás után lejátsza. Két hang közt nem tudom hogy lehet szünetet csinálni. Most csaltam, és egy nem hallható magassgú (pitch 120) tettem be közé.
 Most hogy így bele gondolok, talán erre való az envelope utasítás?
2. A hangpuffer mérétét megpróbáltam a program elején lecsökkenteni, úgy hogy bezárom a hangcsatornát, átparaméterezem, majd megnyitom újra. Sajnos nem történik semmi.
Azt szerettem volna, hogy az éppen kírt hang legyen hallható, de a puffer mérete miatt nem lehet.
 Ha lenne olyan parancs, hogy ellenôrizhetném, mennyi hang vár a pufferben, akkor valahogy megvárhatnám, de ilyen parancsot nem ismerek.
3. szerettem volna a "8" számból print kiíráskor "1/8"-at csinálni, de már elfelejtettem hogy kell. C nyelven printf("1/%d",8) lenne.
 ha azt írom be, hogy
print "1/",8
akkor a betûk nagyon távol lesznek egymástól. Most így dereng a "print using" parancs, de már elfelejtettem hogy kell használni
4. RENUMBER parancsot akartam használni, nem 100 kezdéssel, de sem a RENUMBER AT 500 sem a RENUMBER FROM 500 nem érthetô a gépnek.
+1. Hogyan lehet elkerülni, hogy a READ paranccsal olvasott puffer ha elfogy, akkor ne legyen hibaüzenet?

A 3db EP felhasználói kézikönyvemet valahol elkevertem, nem találom. Így telefonon próbáltam megnyitni a PDF fájt, de nagyon nem tudtam navigálni.

REM :UK
I wrote a basic program, which can play solmisation sounds. I asked my wife to help me fill the music sheet in BASIC DATA blocks, because she studied music.

She did choose the "Kis kece lanyom" hungarian volks music.
I tried to comment every element of the basic program, thus can be understandable for others.

I had some problems, which I was not able to solve, because I have not been use the EP long ago.
1. I don't know, how to place vers short pause between sounds. The EP queues all "waiting sounds" in a buffer, and plays immediately after each other. Here I cheated, i put a sound with very high "inaudible" pitch (120) inbetween.
 If I try to remember, maybe for this reason the "envelope" command was made?
2. I tried to reduce the sound buffer size. I closed the channel, changed the size and opened it again. Unfortunately I did not noticed any change.
My wish was, that the printed sound should be the same, what we can hear. But because the buffer is too big, it does not happen.
 If there would be a command to check the buffer emptyness, then I could wait until it finishes a sound, but I don't know this kind of command.
3. I wanted to print "1/8" instead of "8", but I already forgot how to do it. In C language the command
printf("1/%d",8)
would do that. If I use the Basic command
print "1/",8
there is space between them.
I remember there was a "print using" command, but I already forgot, how to use it.
4. I wanted to RENUMBER some lines, from 500, but the "RENUMBER AT 500" and "RENUMBER FROM 500" was ***Not understood.
+1. How can I avoid, if the READ command finished all DATA statement, the BASIC stops with error message?

I have 3 pieces EP User manual book somewhere, but I was not able to find it. I tried to download the PDF onto my Phone, but it was very inconvienient to use.
8
Illesztések / Re: Datacoop DCD PRT-42G nyomtató
« Last post by vargham on Yesterday at 19:38 »
Cseréltem, ugyanaz.
9
Illesztések / Re: Datacoop DCD PRT-42G nyomtató
« Last post by Zozosoft on 2022.December.05. 20:20:40 »
Alaplapon U24-et kéne cserélni.
10
Táp / Re: EPower
« Last post by kvaczko on 2022.December.05. 17:30:23 »
Az úgy volt, hogy Tutussal beszélgettünk a különböző hardveres fejlesztésekről, amikor említette, hogy van neki pár kész, ámde üres nyáklemeze a Maciej Gruszecki-féle Epower modulhoz és van-e kedvem életre kelteni őket. Természetesen volt, ámde az alkatrészlistából néhány komponenst már nem sikerült beszereznem.

Így adódott a feladat, hogy ezt a fantasztikusan kitalált belső tápegységmodult aktualizáljam, a ma megvásárolható alkatrészekből. Ennek az eredményét láthatjátok most, a neve az eredeti után REpower lett, funkcionalitásában megegyező tulajdonságokkal, de még kisebb kivitelben.

A REpower beszerelésével a régi alaplapi tápáramköröket lehet kiváltani, különösen a két 7805-ös stabilizátor IC-t, ezzel együtt a gép össz. fogyasztása is csökken (a stabilizátorok rengeteg energiát disszipáltak el a levegőbe).

Figyelem! A REpower az Enterprise nem dokumentált szuperképességét, a hűtőbordának álcázott tojássütő-modult teljesen kikapcsolja, azt soha többé nem lehet majd használni. 🙂

Elérhető mától, korlátozott darabszámban, 12.000 Ft/db áron. Szállítás posta vagy Foxpost, 1000 Ft-ért, utánvétes fizetés Foxpostnál lehetséges. A vásárlással az Enterprise Klub működését is támogatod.

A beszerelés módja teljesen megegyezik az Epowerével, amit a wikin találhattok meg angolul (remélem valaki megcsinálja a fordítást magyarra majd): https://wiki.enterpriseforever.com/index.php?title=EPower
Pages: [1] 2 3 4 5 6 7 8 ... 10