home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 26
/
CD_ASCQ_26_1295.iso
/
voxrom
/
textes
/
repwin08
/
annexes
/
triax
/
sbtest.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-10-01
|
4KB
|
133 lines
{▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓}
{ SBTEST - Fichier exemple pour article SB }
{▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓}
Uses CRT,SB;
Var
Handle : file; {Handle fichier}
Buffer : pointer; {Pointeur sur buffer}
BufSize : word; {Taille du buffer}
ExePath : string; {Chemin de l'éxecutable}
{▒▒▒ HEX2ASC: Converti un nombre en héxa->ascii ▒▒▒}
Function Hex2Asc(Hexa:WORD):string;
Const HexDigits : array[0..15] of char = '0123456789ABCDEF';
Var HexStr : string;
Begin
HexStr:='';
Repeat
HexStr:=HexDigits[Hexa and $0f]+HexStr;
Hexa:=Hexa shr 4;
Until Hexa=0;
Hex2Asc:=HexStr;
End; {Pas de commentaires pour cette routine,
c'est pas le but de l'article}
{▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
{▓▓▓ Et c'est partiiiiiiiiiiiiiii..............!!!!!!!!!!!!!!!! (?!) ▓▓▓}
{▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
Begin
{D'abord on s'assure qu'il y a bien une SB}
If not SBDetect then
Begin
{Dommage...}
WriteLn('Bein alors, hein? Cékoi ce petit malin qui lance SBtest');
WriteLn('alors qu''il a même pas de SoundBlaster?? Ca mériterait');
WriteLn('des claques, tiens...');
WriteLn(':-)');
readkey;
Halt;
End;
{Ensuite on balance des infos pour eul'plaisir}
WriteLn('Tintintin... Vous avez une SoundBlaster!!!');
WriteLn;
WriteLn(' Port : ',Hex2Asc(SBPort),'h');
WriteLn(' Irq : ',SBIrq);
WriteLn(' Dma : ',SBDma);
WriteLn(' Version : ',Hex2Asc(SBVersion));
WriteLn;
Delay(1000);
{On charge le fichier contenant ma voix chaude et sensuelle}
ExePath := Paramstr(0);
while exepath[ord(exepath[0])] <> '\' do dec(exepath[0]);
Assign(Handle,EXEpath+'TX!VOICE.RAW');
Reset(Handle,1);
if ioresult>0 then halt;
BufSize:=FileSize(Handle);
GetMem(Buffer,BufSize);
BlockRead(Handle,Buffer^,BufSize);
Close(Handle);
SBInit; {Installe le handler d'irq}
WriteLn('Etant donné que je n''ai trouvé aucun fichier avec une belle');
WriteLn('musique à vous montrer, j''ai du sampler ma voix. (eh oui)');
WriteLn;
Delay(2000);
{Ecoutez, ça n'a rien à voir...}
SBHpOn;
SBSetFreq(22000);
SBDmaOut(BufSize,Buffer);
Repeat until SBDmaDone;
FreeMem(Buffer,BufSize);
{Le droit de réponse...}
WriteLn('Maintenant voici les réponses aux questions et exclamations');
WriteLn('que vous avez pu exprimer lors de la sortie de ce sample...');
WriteLn;
WriteLn(' * Oui j''ai une voix eud''jeun'', c''est normal j''ai 16 ans!');
WriteLn(' * Il y a bien un écho, j''arrive pas encore à parler comme ça...');
WriteLn(' * C''est vrai j''ai une voix à la con mais que voulez-vous');
WriteLn(' on s''refait pas!');
WriteLn;
Delay(4000);
{On va bien rire...hinhinhin}
WriteLn('Eh maintenant, ça va être votre tour...');
WriteLn;
WriteLn(' >>> Allez-y, parlez... <<<');
GetMem(Buffer,26000);
SBHpOff;
SBSetFreq(13000); {Moins vite que tout à l'heure car la SB
ne peut pas sampler à des vitesses phénoménales...}
Repeat
Until (SBDirectIn<120) or (SBDirectIn>136) {Petite astuce sympa qui
permet de ne déclencher
l'enregistrement qu'au moment
où la bête de scène commence
à parler}
or keypressed; {Pour ceux qui n'auraient
pas de micro}
if not keypressed then begin
{Enregistrement...}
WriteLn(' >>> ça tourne (2'') <<<');
WriteLn;
SBDmaIn(26000,Buffer);
Repeat until SBDmaDone;
WriteLn('OK... C''est pas trop mauvais.');
WriteLn('Appuyez sur une touche et écoutez-vous!');
WriteLn;
ReadKey;
{...Et restitution}
SBHpOn;
SBDmaOut(26000,Buffer);
Repeat until SBDmaDone;
end; { if not keypressed }
FreeMem(Buffer,26000);
SBDone; {Désinstalle le handler}
WriteLn('Allez, à la prochaine!');
WriteLn(' (c) TrIaX!''95');
End.