Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Equalizer mit TBassDLLPlayer (https://www.delphipraxis.net/112257-equalizer-mit-tbassdllplayer.html)

64Jabor 17. Apr 2008 17:18


Equalizer mit TBassDLLPlayer
 
Hallo Leute

ich suche eine Möglichkeit, wie im WMP diese, wie soll ich sagen, Equalizer-Töne darzustellen.
Also ich wisst schon, diese Balken die je nach Instrument usw. ausschlagen, denke das sind die Equalizer-Frequenzen... ^^
Bei der TBassDLLPlayer die ich verwende gibt es ein

Delphi-Quellcode:
BassDLLPlayer.InitEQ;
...aber wie gehts weiter?
Ich finde nichts wie man die Daten des Equalizers nun auslesen und visuell darstellen kann...
Wahrscheinlich ist die Lösung denkbar einfach, aber ich steh aufm Schlauch und btw. weiß ich nicht wie man an die angepriesenen Beispiele der TBassDLLPlayer kommt -.-

mfg Sebastian

NikoMitDaMacht 17. Apr 2008 17:23

Re: Equalizer mit TBassDLLPlayer
 
Ich glaube eher du meinst eine FFT-Anzeige bzw. vis.
Bei den Demos der BASS Dll gibts da was.

64Jabor 17. Apr 2008 18:15

Re: Equalizer mit TBassDLLPlayer
 
FFT, ja das hatte ich versucht, aber da kam ich auch nicht weiter...
Ich nehme an dass TBassDLLPlayer ja die Bass.dll mitbringt, oder?
Dann müsste sie ja irgendwo sein/in der TBassDLLPlayer versteckt sein.
Beispiele DAZU finde ich denn wo?
In den Kommentaren der TBassDLLPlayer oder wie?
Und wenn FFT das ist, wie kann man es darstellen?
FFTData -> integer und die dann per PaintBox oder was?

Kennt sich da jemand aus, hab schon viele Player gesehen mit Delphi und so nem Equalizer, nur halt nie den Code dazu...

omata 17. Apr 2008 19:41

Re: Equalizer mit TBassDLLPlayer
 
Dann hast du nicht wirklich gesucht.

64Jabor 18. Apr 2008 13:04

Re: Equalizer mit TBassDLLPlayer
 
Den Beitrag habe ich schon gefunden, aber er bringt mir nichts...
Wenn ich den Player laufen lasse fehlt eine GR32.dcu und noch n paar davon abgeleitete.
Ich nehme an genau die waren für die Visualisierung, oder?
Ich verstehe da nicht wie man Visualisierungen erzeugt :pale:
Wie genau ruft man denn die Werte des "Equalizer-Ausschläge" ab?
Oder habe ich da etwas grundlegendes nicht verstanden?
Vll ist es ja gar nicht so einfach wie ich mir das denke...

Kannst du mir denn erklären wie ich die FFtDaten nutze?

mfg Sebi

NikoMitDaMacht 18. Apr 2008 17:14

Re: Equalizer mit TBassDLLPlayer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ehrlich gesagt habe ich noch nie etwas von einem TBASSPlayer gehört...

Aber die BASS.dll liefert ja Funktionen zum erstellen sog. Channels. Über diese laufen später (soweit ich weiß) alle anderen Dinge wie z.B. Effekte oder in deinem Fall eine Visualisierung.

Delphi-Quellcode:
var
    Channel   : DWORD // Global
[...]

// Initialisierung der Bass und des Channels
begin
  BASS_Init(-1, 44100, 0, Application.Handle, nil);
  Channel := BASS_StreamCreateFile(FALSE, FileName, 0, 0, 0);
end;
Um nun an die Daten einer FFT zu kommen kannst du die Funktion BASS_ChannelGetData benutzen
Delphi-Quellcode:
var
  FFTData: array [0..512] of single;
begin
  BASS_ChannelGetData(Channel, @FFTData, BASS_DATA_FFT1024);
  // Im array FFTData sind nun die Amplituden der "Frequenzen".
[...]
end;
Anbei ist ein Beispiel der BASS und beinhaltet noch das Zeichnen der FFT.
Ich hoffe ich konnte dir helfen.


[Edit]Was ich noch anmerken muss. Das sind keine "Equalizer Auschläge". Eine FFT ist ein Mathematisches Verfahren um eine Periodische Funktion (Klang) in ihre einzelnen Sinusanteile zu zerlegen. Sie hat in dieser hinsicht nichts mit dem Equalizer zu tun. Mit einen Equalizer kann man nur Frequnzbänder veringern oder verstärken. (Wobei natürlich die FFT dadurch beeinflusst wird)...[/edit]

64Jabor 19. Apr 2008 12:22

Re: Equalizer mit TBassDLLPlayer
 
@Niko:
Vielen Dank, das wollte ich haben! Natürlich hat die Visualisierung nicht direkt etwas mit dem Equalizer zu tun - da hatte ich mich wohl falsch ausgedrückt, aber wie gesagt, indirekt wird sie ntülich beeinflusst von den Einstellungen.
Sowohl TBassDLLPlayer als TBassPlayerEx gibt es, seltsam dass du davon noch nichts gehört hast, aber natürlich durchaus möglich ^^
Ich vermute dass die Bass.dll da irgendwie "integriert" ist, nur solche Funktionen wie BASS_xy funktionieren nicht so recht damit, obwohl sie in den *.pas-Dateien allesamt aufgelistet sind - aber davon habe ich nicht soo die Ahnung...
Auf alle Fälle vielen Dank, werde mich da mal durcharbeiten, aber vermute dass das genau das richtige sein wird!

mfg Sebi


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 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