Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#16

Re: equalizer mit der bass.dll

  Alt 20. Sep 2005, 12:00
Zitat von padavan:
Ich denke ich bin dem Problem jetzt ganz nah...



Delphi-Quellcode:
RechterKanal := LoWord(WaveData[i]);
LinkerKanal := HiWord(WaveData[i]);

Delphi-Quellcode:
procedure OscDraw(Paintbox: TPaintBox; WaveData : TWaveData; ScopeOff: Word);
const
  DrawRes = 2; // "Genauigkeit"
var
  i, YPos : LongInt;
  HalfHeight : Integer;
  R, L : SmallInt;
begin
  With PaintBox do
  begin
    // Zeichenstifte setzen
    Canvas.Pen.Color := clBlack;
    Canvas.Brush.Color := clBlack;

    // Hintergrund löschen
    Canvas.Rectangle(0, 0, Width, Height);

    // halbe höhe der PaintBox
    HalfHeight := Height div 2;

    // Zeichenstifte setzen
    Canvas.Pen.Color := clRed;
    Canvas.Pen.Width := 1;

    // Anfangspos setzen
    Canvas.moveto(0, HalfHeight);

    // Daten Zeichnen
    for i := 0 to 255 do
    begin
      R := SmallInt(Loword(WaveData[i * DrawRes])); // Rechter Kanal
      L := SmallInt(HIword(WaveData[i * DrawRes])); // Linker Kanal

      // Zusammenrechnen der Kanäle + Zoom
      YPos := Trunc( ((R + L) / (2 * 65535)) * ScopeOff ) ;
      Canvas.lineto(i, HalfHeight + YPos);
    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  OscDraw(Paintbox1, BassdllPlayer1.getWaveData, 250);
end;
Ähnlichkeiten zu anderen Codes können durchaus entstanden sein.
Beispiele zu VIS sind im Ordner ..\bass21\Delphi\SampleVis

...ohne Worte...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat