Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Darstellung wie in Audioeditor

  Alt 6. Sep 2005, 20:59
Achso!
Jetzt verstehe ich das genau!
Hört sich gut an.

Ich habe nur momentan das Problem, das der Minimale und der Maximale wert eines Samples komischerweise immer gleich ist, dazu habe ich die Werte mal in einer TIntegerList Gespeichert Hier im Forum suchenTIntederlist:

Delphi-Quellcode:
function TForm1.GeneratePeaks(height,width:integer;stream:HStream):TBitmap;
var i,len,r,l,ypos,xpos,ymax,ymin:integer;
var WaveData : TWaveData;
    liste :TIntegerList;
begin
  liste := TIntegerlist.Create;
  result := TBitmap.Create;
  result.Height := height;
  result.Width := width;
  for len := 0 to bass.BASS_StreamGetLength(stream) div 5000 do //div 5000 weil es sonst zu lange dauert
  begin
    BASS_ChannelSetPosition(stream,len*5000);
    BASS_ChannelGetData(stream, @WaveData, 2048);
    ymax := 0;
    ymin := 0;
    for i := 1 to 255 do
    begin
      Ypos := SmallInt(Loword(WaveData[i]));
      if Ypos > YMax then
        YMax := Ypos
      else if Ypos < YMin then
        YMin := Ypos;
    end;
    liste.Add(ymax div 100); //werte etwas kleiner machen
    liste.Add(ymin div 100); //werte etwas kleiner machen
  end;
  for i := 0 to liste.Count -1 do
    listbox1.Items.Add(inttostr(liste.Item[i]));
end;
Bass.dll hat geschrieben:
Zitat:
.
.
.
307
-276
307
-276
307
-276
307
-276
307
-277
307
-276
307
-276
307
-276
307
-276
.
.
.
Andreas
  Mit Zitat antworten Zitat