Hollosi Information eXchange /HIX/
HIX CODER 2146
Copyright (C) HIX
2004-09-21
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
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

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS