Einzelnen Beitrag anzeigen

meama

Registriert seit: 8. Mär 2008
15 Beiträge
 
#5

Re: einfache Visualisierung mit bass.dll ??

  Alt 22. Jan 2009, 10:49
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
  Mit Zitat antworten Zitat