AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TBassDllPlayer + Visualisierung (Komponenten)
Thema durchsuchen
Ansicht
Themen-Optionen

TBassDllPlayer + Visualisierung (Komponenten)

Ein Thema von Gandalfus · begonnen am 29. Aug 2005 · letzter Beitrag vom 22. Okt 2005
Antwort Antwort
Seite 2 von 2     12   
Gandalfus
Registriert seit: 19. Apr 2003
Ein Player der auf der bass.dll basiert (Lizens der bass.dll beachten) und eine Visualisierungs Komponente.

Bei der Visualisierungs Komponente ist wichtig, dass die Felder Bassdllplayer und VisualisierungsEinstellungen zugeordnet sind.

Für die VIsualierung kann man dlls als Plugin laden.

Ein Beispiel für solch eine Dll:

Delphi-Quellcode:
library Project1;

{keine normalen strings übergeben sonder nur PChar}

uses
  Windows, Classes, Graphics,
  math, Controls, Messages, ExtCtrls, mmsystem, Dialogs, Contnrs, SysUtils;
{$R *.res}

type
  TFFTData= array[0..256] of Extended;
  TWaveData = array [ 0..2048] of DWORD;

  TFFTandWaveData = record
    FFTdata: TFFTdata; //zwischen 0 und 1
    waveData: TwaveData;
    leftpeak,rightpeak: dword; {von 0 bis 32768}
  end;

function getVersion: integer; stdcall;
begin
  result := 1;
end;

procedure draw(CanvasHandle: HDC; Backgroundcolor,Bordercolor,BalkenColor: Graphics.TColor; width,height: integer; var FFTData: TFFTandWaveData); stdcall;
var
  data: TFFTdata;
  i: integer;
  TempBitmap: TBitmap;
begin
  IF CanvasHandle=0 then exit;
  data := FFTData.FFTdata;

  TempBitmap := TBitmap.create;
  TempBitmap.Width := width;
  TempBitmap.height := height;

  for i := 1 to 256 do
  begin
    Data[i] := Data[i]*ln(i)*4*((height));
    if Data[i] > (height) then Data[i] := (height);
  end;
  TempBitmap.canvas.pen.color := Bordercolor;
  TempBitmap.canvas.brush.color := Backgroundcolor;
  TempBitmap.canvas.Rectangle(0,0,width,height);
  TempBitmap.canvas.pen.color := BalkenColor;
  for i := 1 to 256 do
  begin
    TempBitmap.Canvas.MoveTo(i,height);
    TempBitmap.canvas.lineTo(i,(height)-round(Data[i]));
  end;

  BitBlt(CanvasHandle, 0, 0, TempBitmap.width, TempBitmap.height, TempBitmap.canvas.Handle , 0, 0 , SRCCOPY);

  TempBitmap.free;
end;

exports
  draw;
  getVersion;

begin

end.
Edit: Die Procedure für die VersionsKontrolle wurde irgendwie gelöscht. Ich hab sie jetzt hinzugefügt.

Dann die dll noch in xyz.bvis umbenen und danach kann kann sie über das popup Menüe geladen werden.
Wäre nett wenn sich Leute finden würden, die Plugins programmieren würden.



mfg
Angehängte Dateien
Dateityp: zip test_391.zip (189,5 KB, 136x aufgerufen)
Dateityp: zip komponente_update_502.zip (184,5 KB, 179x aufgerufen)
Dateityp: zip demo_539.zip (339,7 KB, 210x aufgerufen)
Besucht doch mal meine Homepage
 
padavan

 
Delphi 7 Enterprise
 
#11
  Alt 19. Sep 2005, 07:48
Also ich hab mich jetzt auch mal mit der BassDLL beschäftigt.
Soweit so gut, jetzt wollte ich so eine Oszilloskopanzeige wie bei Winamp realisieren, daran scheitere ich aber im Moment noch, da ich nicht genau weiß, was ich mit den Daten machen soll, die man von der Bass.Dll bekommt.

Die FFT-Analyse klappt schon, waren ja auch genug Beispiele dabei, aber die andere Möglichkeit....?!?!
Ich nehme mal an, dass man anstatt getfftdata -> getwavedata benutzen muss, aber wenn ich dann ein Lied laufen lasse, bekomme ich bestenfalls dieses: (siehe Anhang)
Hab immer die maximale Amplitude und die Frequenz stellt sich im Abstand der Balken dar.
Ich bin na dran, hab aber nu ein Brett vorm Kopf
Miniaturansicht angehängter Grafiken
oszi_156.jpg  
  Mit Zitat antworten Zitat
Nils_13
 
#12
  Alt 22. Okt 2005, 15:51
Hi,

@gandalfus: kannst du mir mal bitte die U_Bassdllplayer.pas nicht dcu schicken. Bei dieser Version läuft Volume nicht und mir fehlt die Datei.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz