muss ich eigentlich die größe des array erhöhen?, im mom ist tfftdate ein array vom typ single und 0..255 groß, muss das erhöht werden?
also das ist die funktion in der bassdllplayer.pas
Delphi-Quellcode:
function TBassdllPlayer.getfftdata: TFFTData;
begin
if status <> sndPLAYING then
exit;
if (BASS_ChannelGetData(Channel, @Result, BASS_DATA_FFT4096) = 2048) = False then
begin
ZeroMemory(@Result, SizeOf(Result));
end;
end;
das array in selbiger
unit
TFFTData = array[0.255] of Single;
und nun in meiner
unit, wo ich die function aufrufe:
Delphi-Quellcode:
data := BassdllPlayer1.GetFFTData;
Image1.Canvas.Pen.Width:=1;
for i := 0
to 255
do
Data[i] := Data[i] * ln(i + 1) * (Image1.Height)*2;
for i := 0
to 255
do
begin
Image1.Canvas.pen.color :=
RGB(255- i, i, i);
Image1.Canvas.MoveTo(i+25, Image1.height-5);
Image1.Canvas.LineTo(i+25, (Image1.height-5) - round(Data[i]) );
end;
Wenn ich nun das array tfftdata erhöhe auf 4096 und dann auch in meinem schreibe for i:=0 to irgendwas was größer als 255 ist, bekomm ich immer nen Speicherfehler.
Gruß Masteric