Thema: Prism FFT + Bassdllplayer

Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: FFT + Bassdllplayer

  Alt 23. Mai 2008, 02:55
Welchen Wert hat i zu dem Zeitpunkt wo der Fehler auftritt?

Und am Rande: Dein Array ist 2049 Elemente groß. Eins zu viel.

Edit:
Die Funktion zum Zeichnen ist im Übrigen auch nicht das gelbe vom Ei. Sie macht 2 Schleifen, wo nur eine nötig wäre, in der man einiges gut zusammenfassen kann.

Delphi-Quellcode:
var
  temp: Integer;
begin
  data := BassdllPlayer1.GetFFTData;
  Image1.Canvas.Pen.Width:=1;
  temp := Image1.Height-5;

  for i := 0 to 255 do
  begin
    Image1.Canvas.pen.color := RGB(255- i, i, i);
    Image1.Canvas.MoveTo(i+25, temp);
    Image1.Canvas.LineTo(i+25, temp - round(Data[i] * ln(i+1) * (temp+5) * 2));
  end;
end;
Achte darauf, dass dein i nacher nicht nur bis 255 geht. Ohne anpassen der Zeichenoperationen wird es ein sehr breites Bild, wenn nicht schon RGB() zerbröselt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat