Habe mal ein Beispiel angehängt.
Vielleicht hilft es euch ja weiter.
Edit...
im Anhang ist DrawSpectrum noch folgendermaßen aufgebaut
Delphi-Quellcode:
for i:=1 to length(_wavebufL) do begin
_Buffer.Canvas.MoveTo(i-1, ht);
_Buffer.Canvas.LineTo(i-1, ht-trunc((_wavebufL[i-1]/32768)*ht));
_Buffer.Canvas.MoveTo(i-1, ht);
_Buffer.Canvas.LineTo(i-1, ht+trunc((_wavebufR[i-1]/32768)*ht));
end;
damit bekommt man eine Welle (oben: Links / unten: Rechts)
In der Eingangsfrage geht es aber um jeweils eine Welle für Links und Rechts
das bekommt man mit folgendes Code
Delphi-Quellcode:
for i:=1 to length(_wavebufL) do begin
_Buffer.Canvas.MoveTo(i-1, ht - (ht div 2) + (trunc((_wavebufL[i-1]/32768)*ht) div 2));
_Buffer.Canvas.LineTo(i-1, ht - (ht div 2) - (trunc((_wavebufL[i-1]/32768)*ht) div 2));
_Buffer.Canvas.MoveTo(i-1, ht + (ht div 2) + (trunc((_wavebufR[i-1]/32768)*ht) div 2));
_Buffer.Canvas.LineTo(i-1, ht + (ht div 2) - (trunc((_wavebufR[i-1]/32768)*ht) div 2));
end;
MfG
Thorsten