Thema: Prism FFT + Bassdllplayer

Einzelnen Beitrag anzeigen

Masteric

Registriert seit: 1. Aug 2007
Ort: Melsungen
155 Beiträge
 
Delphi 7 Professional
 
#7

Re: FFT + Bassdllplayer

  Alt 22. Mai 2008, 22:37
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
  Mit Zitat antworten Zitat