auch wenn der thread schon ein bisschen älter ist gebe ich mal meinen senf dazu
meine vollbild visualisierung habe ich so gemacht
Delphi-Quellcode:
data := form1.BassdllPlayer1.GetFFTData;
for i := 0 to 255 do
Data[i] := Data[i] * ln(i + 1) * 5 * Paintbox1.ClientHeight;
Paintbox1.Canvas.CopyRect(Paintbox1.ClientRect, bkBitmap.Canvas, BitmapRect);
randcl:=random(5);
case randcl of
0:Paintbox1.Canvas.pen.color := cllime;
1:Paintbox1.Canvas.pen.color := clred;
2:Paintbox1.Canvas.pen.color := claqua;
3:Paintbox1.Canvas.pen.color := clyellow;
4:Paintbox1.Canvas.pen.color := clfuchsia;
end;
Paintbox1.Canvas.MoveTo(0, Paintbox1.height div 2);
for i := 0 to 255 do
Paintbox1.Canvas.LineTo(i*((paintbox1.width div 255)), Paintbox1.height div 2 - round(Data[i]) div 2);
Paintbox1.Canvas.MoveTo(0, Paintbox1.height div 2);
for i := 0 to 255 do
Paintbox1.Canvas.LineTo(i*((paintbox1.width div 255)), Paintbox1.height div 2 + round(Data[i]) div 2);
Paintbox1.Canvas.MoveTo(0, Paintbox1.height div 2);
Paintbox1.Canvas.LineTo(i*((paintbox1.width div 255)) sorgt dafür, dass die visualisierunf über die paintbox gestreckt wird. allerdings je nach auflösung auch nicht ganz, weil das ergebnis gerundet ist. wenn man die 255 etwas kleiner macht könnte man das beheben, hängt wie gesagt von auflösung, also größe der paintbox ab