/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Lyd ud på lydkort...
Fra : Finn Stampe Mikkelse~


Dato : 13-06-03 23:01

Hejsa

Skal have en sinusformet lyd med variable frekvens og længde ud på et givent
lydkort??? I Delphi 6 Enterprise prof

Eksempel : Play Hz,ms Spil en sinusformet lyd på x Hz i x millisekunder...

Nogen hjælp.... Noget ala beep med duration osv, bare til lydkort i stedet
for pc ht....



 
 
Finn Stampe Mikkelse~ (14-06-2003)
Kommentar
Fra : Finn Stampe Mikkelse~


Dato : 14-06-03 01:58

Har fundet en løsning....

/Finn
"Finn Stampe Mikkelsen" <stampe@city.dk> skrev i en meddelelse
news:3eea49a0$0$5174$edfadb0f@dread11.news.tele.dk...
> Hejsa
>
> Skal have en sinusformet lyd med variable frekvens og længde ud på et
givent
> lydkort??? I Delphi 6 Enterprise prof
>
> Eksempel : Play Hz,ms Spil en sinusformet lyd på x Hz i x millisekunder...
>
> Nogen hjælp.... Noget ala beep med duration osv, bare til lydkort i stedet
> for pc ht....
>
>



Hans Nikolajsen (14-06-2003)
Kommentar
Fra : Hans Nikolajsen


Dato : 14-06-03 12:44

Jadav!

Må vi se kildeteksten!

--
M.v.h.
Hans Nikolajsen
Homepage: http://home1.stofanet.dk/jadav/

"Finn Stampe Mikkelsen" <stampe@city.dk> skrev i en meddelelse
news:3eea7326$0$5165$edfadb0f@dread11.news.tele.dk...
> Har fundet en løsning....
>
> /Finn
> "Finn Stampe Mikkelsen" <stampe@city.dk> skrev i en meddelelse
> news:3eea49a0$0$5174$edfadb0f@dread11.news.tele.dk...
> > Hejsa
> >
> > Skal have en sinusformet lyd med variable frekvens og længde ud på et
> givent
> > lydkort??? I Delphi 6 Enterprise prof
> >
> > Eksempel : Play Hz,ms Spil en sinusformet lyd på x Hz i x
millisekunder...
> >
> > Nogen hjælp.... Noget ala beep med duration osv, bare til lydkort i
stedet
> > for pc ht....
> >
> >
>
>



Finn Stampe Mikkelse~ (14-06-2003)
Kommentar
Fra : Finn Stampe Mikkelse~


Dato : 14-06-03 18:08

Hej Hans og andre

Joda..

Ideen er at generere en Wave i memory og så afspille denne. Her kan jo
bruges den almindelige sndplaysound. Ofte bare ideen der skal til...

Have fun

/Finn


Type TVolumeLevel = 0..127;

procedure MakeSound(Frequency, Duration : integer; Volume :
TVolumeLevel);
{writes tone to memory and plays it}
var
WaveFormatEx : TWaveFormatEx;
MS : TMemoryStream;
i, TempInt, DataCount, RiffCount : integer;
SoundValue : byte;
w : double; // omega ( 2 * pi * frequency)
const
Mono : Word = $0001;
SampleRate : integer = 11025; // 8000, 11025, 22050, or 44100 Hz
RiffId : string = 'RIFF';
WaveId : string = 'WAVE';
FmtId : string = 'fmt ';
DataId : string = 'data';

begin
if Frequency > (0.6 * SampleRate) then
begin
ShowMessage(Format('Sample rate of %d is too low to play a tone of
%dHz',
[SampleRate, Frequency]));
Exit;
end;
with WaveFormatEx do
begin
wFormatTag := WAVE_FORMAT_PCM;
nChannels := Mono;
nSamplesPerSec := SampleRate;
wBitsPerSample := $0008;
nBlockAlign := (nChannels * wBitsPerSample) div 8;
nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;
cbSize := 0;
end;
MS := TMemoryStream.Create;
with MS do
begin

{Calculate length of sound data and of file data}

DataCount := (Duration * SampleRate) div 1000; // sound data
RiffCount := Length(WaveId)
+ Length(FmtId) + SizeOf(DWord) + SizeOf(TWaveFormatEx)
+ Length(DataId) + SizeOf(DWord) + DataCount; // file
data

{write out the wave header}

Write(RiffId[1], 4); //
'RIFF'
Write(RiffCount, SizeOf(DWord)); // file data size
Write(WaveId[1], Length(WaveId)); // 'WAVE'
Write(FmtId[1], Length(FmtId)); // 'fmt '
TempInt := SizeOf(TWaveFormatEx);
Write(TempInt, SizeOf(DWord)); // TWaveFormat data
size
Write(WaveFormatEx, SizeOf(TWaveFormatEx)); // WaveFormatEx record
Write(DataId[1], Length(DataId)); // 'data'
Write(DataCount, SizeOf(DWord)); // sound data size

{calculate and write out the tone signal} // now the data values

w := 2 * Pi * Frequency; // omega
for i := 0 to DataCount - 1 do
begin
SoundValue := Volume + trunc(Volume * sin(i * w / SampleRate));
Write(SoundValue, SizeOf(Byte));
end;

{now play the sound}

sndPlaySound(MS.Memory, SND_MEMORY or SND_SYNC);
MS.Free;
end;
end;

"Hans Nikolajsen" <hans_n@stofanet.dk> skrev i en meddelelse
news:3eeb0a7a$0$15359$ba624c82@nntp05.dk.telia.net...
> Jadav!
>
> Må vi se kildeteksten!
>
> --
> M.v.h.
> Hans Nikolajsen
> Homepage: http://home1.stofanet.dk/jadav/
>
> "Finn Stampe Mikkelsen" <stampe@city.dk> skrev i en meddelelse
> news:3eea7326$0$5165$edfadb0f@dread11.news.tele.dk...
> > Har fundet en løsning....
> >
> > /Finn
> > "Finn Stampe Mikkelsen" <stampe@city.dk> skrev i en meddelelse
> > news:3eea49a0$0$5174$edfadb0f@dread11.news.tele.dk...
> > > Hejsa
> > >
> > > Skal have en sinusformet lyd med variable frekvens og længde ud på et
> > givent
> > > lydkort??? I Delphi 6 Enterprise prof
> > >
> > > Eksempel : Play Hz,ms Spil en sinusformet lyd på x Hz i x
> millisekunder...
> > >
> > > Nogen hjælp.... Noget ala beep med duration osv, bare til lydkort i
> stedet
> > > for pc ht....
> > >
> > >
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409084
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste