1. |
re: re: 16 bites hanghoz peldaprogram (mind) |
72 sor |
(cikkei) |
2. |
RE: Screensaver idozites BP7.0 (mind) |
20 sor |
(cikkei) |
3. |
RE: Screensaver idozites BP7.0 (mind) |
20 sor |
(cikkei) |
4. |
RE: Screensaver idozites BP7.0 (mind) |
20 sor |
(cikkei) |
5. |
Re: Screensaver idozites BP7.0 (mind) |
22 sor |
(cikkei) |
6. |
RE: Screensaver idozites BP7.0 (mind) |
30 sor |
(cikkei) |
7. |
Screensaver idozites BP7.0 (mind) |
24 sor |
(cikkei) |
8. |
re: Screensaver idozites BP7.0 (mind) |
4 sor |
(cikkei) |
9. |
re: 16 bites hanghoz peldaprogram (mind) |
44 sor |
(cikkei) |
10. |
re: re: 16 bites hanghoz peldaprogram (mind) |
9 sor |
(cikkei) |
11. |
re: Screensaver idozites BP7.0 (mind) |
6 sor |
(cikkei) |
|
+ - | re: re: 16 bites hanghoz peldaprogram (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello,
Szerintem D/A Converterrel (DAC) eleg nehez lesz 16 bites hangot
lejatszani, mivel az a printer portra csatlakozik, ott pedig 8
adatvonal van, amit ki lehet valasztani bemenetnek vagy kimenetnek.
Szal, nem tudom elkepzelni.
Azt javaslom, hogy itt alakitsd a hangmintat 8 bitesre.
Vigyazz a signed/unsigned dolgokkal 8 bites hangnal, mert ellenkezo
esetben nagyon recsegos, torz lesz a hang.
Signed/unsigned megoldhato, ha a 8 bites adat legfelso bitjet negalod.
Tehat eloszor lejatszod az egeszet negalas nelkul.
Ha nagyon torz es recseg, akkor
az osszes 8 bites adat legfelso bitjet negalod, es ugy is lejatszod.
DAC eseten a hangmintat egyszeruen csak ki kell kuldeni a LPT1 vagy a LPT2
port adat portjara, a mintavetelezesi frekvencianak megfelelo sebesseggel.
$0378 :adatport (LPT2 eseten $0278, LPT3 pedig $03bc)
$0379 :allapotregiszter
$037a :parancsregiszter
Ahol nem szol(na) valamiert ott a BIOS rosszul initelt, eloszor initelni
kell a printer portot.
A LPT1 es LPT2 cime valtozhat, a cimuket kiolvashatod a kovetkezo
memoriaszegmensekrol:
$0000:$0408 LPT1
$0000:$040A LPT2
$0000:$040C LPT3
$0000:$040E LPT4
Ha ezeknek a memoriacimeknek valamelyiken 0 van, akkor az a port nem
hasznalt.
Lejatszas ugy valosithato meg DAC-on, hogy:
Beallitod a PIT (Intel 8253 Programmable Interval Timer) 0. csatornajat a
lejatszasi frekvencia sebessegenek megfeleloen, ezen van az int 8.
Felprogramozod az int 8-at, hogy kuldje a DAC-ra a hangmintat.
Kozben ugyelsz arra, hogy a regi megszakitast 18.2 HZ-es frekvenciaval
hivd, mert ez viszi a gep belso orajat (nem a kvarcot), es mas rutinok is
lehetnek rajta.
Ha ilyenkor minden int 8 lefutasnal meghivod, a gep belso oraja
felgyorsul, es az orak bizony gyorsan telnek . . . :-) De meg a napok is :-)))
A PIT 0. csatornajanak frekvenciajat igy allithatod be:
szamlalo := $1234DD div frekvencia
A $1234DD egy konstans, a PIT frekvenciaja.
A $43 portra kikuldesz $34-et.
Ezutan a $40 portra kikuldod a szamlalo nevu valtozo also, majd felso 8
bitjet.
Ha a frekvenciat 0-ra allitod, akkor a PIT 0. csatijanak frekvenciaja
alaphelyzetbe all.
Ha mixelni kell tobb hangmintat, akkor egyszeruen csak ossze kell adni a
mintak erteket t idopillanatban.
Legyen a minta1 az 1. hangminta t idopillanatbeli erteke, a minta2 a 2.
hangmintae, a 3 a 3-ase, a 4 a 4-ese.
A minta1, minta2, minta3, minta4 8 bites ertekek legyenek, melyek az egesz
szamok halmazan vannak ertelmezve, tehat -128 es 127 kozott vehetik fel
ertekeiket.
Mixeles Pl. eredmeny := minta1+minta2+minta3+minta4
A tulcsordulast ugy kell lekezelni 8 bites hang eseten hogy
ha eredmeny < -128 akkor eredmeny := -128,
ha eredmeny > 127 akkor eredmeny := 127.
Ezert nem art ha eredmeny valtozonk 16 bites, es a feltetelek lekezelese
utan csak a 8 bites szukseges reszt kuldjuk ki.
Hat ennyi.
Igy oldhato meg a DAC-on a lejatszas, es hasonloan mukodik PC Speaker
eseten is.
Udv:
Laci
|
+ - | RE: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szervusztok
> Ez még éppen működik is, csak bizonyos gépeken a
> Delay nem pontos, és volt úgy hogy az egyik gépen bekalibráltam 1
> percre, és másik gépen 3-4mp után már jött is a screensaver.
Ezt annak idejen ugy vertem at, hogy program inditaskor raaldoztam egy masodper
cet. Ezt ugy, hogy a gettime -al figyeltem az idokulonbseget es szamoltam, hogy
ez alatt hany delay(1) tortenik.
Paraszt megoldas, de bevalt. Raadasul a Windows se akad ki tole.
Hatranya, hogy pont ejfelkor dorgedelmesen ellovi a szamitast. :)
uses crt,dos;
var start,stop,kor:longint;
hh,mm,ss,rr:word;
.
Feherke.
http://script.fplanet.hu
|
+ - | RE: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szervusztok
> Ez még éppen működik is, csak bizonyos gépeken a
> Delay nem pontos, és volt úgy hogy az egyik gépen bekalibráltam 1
> percre, és másik gépen 3-4mp után már jött is a screensaver.
Ezt annak idejen ugy vertem at, hogy program inditaskor raaldoztam egy masodper
cet. Ezt ugy, hogy a gettime -al figyeltem az idokulonbseget es szamoltam, hogy
ez alatt hany delay(1) tortenik.
Paraszt megoldas, de bevalt. Raadasul a Windows se akad ki tole.
Hatranya, hogy pont ejfelkor dorgedelmesen ellovi a szamitast. :)
uses crt,dos;
var start,stop,kor:longint;
hh,mm,ss,rr:word;
.
Feherke.
http://script.fplanet.hu
|
+ - | RE: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szervusztok
> Ez még éppen működik is, csak bizonyos gépeken a
> Delay nem pontos, és volt úgy hogy az egyik gépen bekalibráltam 1
> percre, és másik gépen 3-4mp után már jött is a screensaver.
Ezt annak idejen ugy vertem at, hogy program inditaskor raaldoztam egy masodper
cet. Ezt ugy, hogy a gettime -al figyeltem az idokulonbseget es szamoltam, hogy
ez alatt hany delay(1) tortenik.
Paraszt megoldas, de bevalt. Raadasul a Windows se akad ki tole.
Hatranya, hogy pont ejfelkor dorgedelmesen ellovi a szamitast. :)
uses crt,dos;
var start,stop,kor:longint;
hh,mm,ss,rr:word;
.
Feherke.
http://script.fplanet.hu
|
+ - | Re: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szervusztok
> Ez még éppen működik is, csak bizonyos gépeken a
> Delay nem pontos, és volt úgy hogy az egyik gépen bekalibráltam 1
> percre, és másik gépen 3-4mp után már jött is a screensaver.
Ezt annak idejen ugy vertem at, hogy program inditaskor raaldoztam egy masodper
cet. Ezt ugy, hogy a gettime -al figyeltem az idokulonbseget es szamoltam, hogy
ez alatt hany delay(1) tortenik.
Paraszt megoldas, de bevalt. Raadasul a Windows se akad ki tole.
Hatranya, hogy pont ejfelkor dorgedelmesen ellovi a szamitast. :)
uses crt,dos;
var start,stop,kor:longint;
hh,mm,ss,rr:word;
.
Feherke.
http://script.fplanet.hu
(webes bekuldes, a bekuldo gepe: 212.93.158.138)
|
+ - | RE: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szervusztok
> Ez még éppen működik is, csak bizonyos gépeken a
> Delay nem pontos, és volt úgy hogy az egyik gépen bekalibráltam 1
> percre, és másik gépen 3-4mp után már jött is a screensaver.
Ezt annak idejen ugy vertem at, hogy program inditaskor raaldoztam egy masodper
cet. Ezt ugy, hogy a gettime -al figyeltem az idokulonbseget es szamoltam, hogy
ez alatt hany delay(1) tortenik.
Paraszt megoldas, de bevalt. Raadasul a Windows se akad ki tole.
Hatranya, hogy pont ejfelkor dorgedelmesen ellovi a szamitast. :)
uses crt,dos;
var start,stop,kor:longint;
hh,mm,ss,rr:word;
{b}egin
gettime(hh,mm,ss,rr);
start:=hh*60*60*100+mm*60*100+ss*100+rr;
kor:=0;
repeat
delay(1); inc(kor);
gettime(hh,mm,ss,rr);
stop:=hh*60*60*100+mm*60*100+ss*100+rr;
until stop>start+100;
delay(kor*100);
{e}nd.
Feherke.
http://script.fplanet.hu
|
+ - | Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
> Temakor: Screensaver idozites BP7.0 ( 32 sor )
> tipus megoldssal. Ez mg ppen mkdik is, csak bizonyos gpeken a
> Delay nem pontos
Affrászt!
Ha Windows alól futtatod, akkor nem a processzoridő 100%-a áll a progid
rendelkezésére hanem csak valamennyi. Úgyhogy ne csodálkozz a turmixon.
> Tud valaki 1 j megoldst javasolni? Akr a Delay pontoss ttelre,
> akr egy teljesen ms megkzelitsre.
Neked itt másodpercnél nagyobb időfelbontásra van szükséged, úgyhogy
kérdezd le a rendszerórát és ahhoz adj hozzá időt. A rendszeróra
független a time-share-től.
> Fontos mg, hogy Windows (9X, 2000, XP) alatt fut a progi, szval csak
> olyan megolds OK, amitl nem dob htast a Windows.
Csoda, hogy megy egyáltalán.:-)
--
Vomberg István >
Chemotron Inc. www.chemotron.hu
|
+ - | re: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
A Delay nem msec-ben keri az adatot?
Szerintem az 1 kicsi lesz alapegysegnek - irjal be nagyobbat.
Ha igy sem jo, akkor hasznald a rendszerorat. Azzal utoljara XT-n volt
gondom (ott idonkent ugrik).
|
+ - | re: 16 bites hanghoz peldaprogram (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello!
>Már többen ajánlották A "könyvet", de még mindig nem tudom a könyv >címét
>(vagyis a címét most már igen), de a
>kiadót és szerzôt, meg 1általán mikor adták ezt ki?
>lehet-e még kapni ?, stb....
ComputerBooks adta ki.
http://www.computerbooks.hu/hangprog/index.html
László József:
Hangkártyák programozása Pascal és Assembly nyelven
Megjelenés: március (1995)
530 oldal , 2900.- Ft
ISBN: 963 618 197 7
>Elôre is köszönöm ha elküldöd a lemez mellékletet.
>Az lenne a legjobb, ha felteszed a netre és majd onnan letöltöm,
>mert az emailes nekem egy kicsit macerás. (modem).
Most ez biztos nem túl szép, hogy kirakom a lemezmellékletet, de csak
nem sértődik meg rajta a kiadó vagy a szerző... :)
http://www.dikid.hu/sbbook.zip
>Kizárólag dos vagy linux, grafikus felület nélkül.
>Ez egy cél gép lesz és nem arról szól, hogy milyen csicsa a
>kinézete.... :)
>
>A HW közellel nincs baj :), úgyis én tervezem és építem a kiszolgáló
>hardver eszközöket is.
Ebben az esetben tényleg tudom ajánlani a könyvet. Meg akkor a DOS se
baj, ha te alakitod a HW-t. :) Egyébként SB16 egy elég barátságos
hangkártya, sztem könnyebb programozni, mint az elődeit. Főleg, ha a 16
bites átviteről van szó. Arra esetleg figyeljél, hogy a ma használatos
hangkártyák, ha kompatibilisek is netán DOS-sal, az SB16-ot legritkább
esetben tudják emulálni. Érdemes esetleg 1 eredetit beszerezni :)
Volt régen 1 unitom pascalhoz, ami még több hangot is tudott lejátszni
egyszerre. Ezt is kirakom. (Lehet, hogy azóta létezik újabb verzió, nem
tudom)
http://www.dikid.hu/smix127.zip
Gubi
|
+ - | re: re: 16 bites hanghoz peldaprogram (mind) |
VÁLASZ |
Feladó: (cikkei)
|
László József: Hangkártya programozása Pascal és Assembly nyelven
ISBN: 963 618 197 7
Computerbooks, 1999
1126 Bp., Tartsay Vilmos u. 12.
Telefon: 375-15-64; Tel/Fax: 375-35-91
E-mail:
http://www.computerbooks.hu
Drotos Dani
|
+ - | re: Screensaver idozites BP7.0 (mind) |
VÁLASZ |
Feladó: (cikkei)
|
A Delay() fuggvenyt a pascal egy vissza szamlalos csiklussal
valositja meg amelyet az uj CPU-k (asszem PII<) elojoslasa
felismer es attlepi ezert nem megfelelo az ido...
Asszem van hozza javitas, de en nem lattam...
:Voli
|
|