Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bass.dll Wave Data / FFT Data ? (https://www.delphipraxis.net/128014-bass-dll-wave-data-fft-data.html)

Blamaster 22. Jan 2009 18:59


Bass.dll Wave Data / FFT Data ?
 
Hi,

ich sitze gerade dran eine "Peak Spektrum" Funktion zu basteln.

Nun ist meine Frage, wie ich direkt nach dem laden die daten in 2 Arrays (linker Peak und rechter Peak)laden kann.

Außerdem würde mich noch interessieren was dafür geeignet ist FFT Daten oder Wave Daten ?

Ich hoffe mir kann da jemand helfen.

mfg Blamaster

EWeiss 22. Jan 2009 19:58

Re: Bass.dll Wave Data / FFT Data ?
 
Zitat:

Zitat von Blamaster
Hi,

ich sitze gerade dran eine "Peak Spektrum" Funktion zu basteln.

Nun ist meine Frage, wie ich direkt nach dem laden die daten in 2 Arrays (linker Peak und rechter Peak)laden kann.

Außerdem würde mich noch interessieren was dafür geeignet ist FFT Daten oder Wave Daten ?

Ich hoffe mir kann da jemand helfen.

mfg Blamaster

FFT.
Weil die Daten erst geglättet werden müssen damit man keine Negativen werte bekommt.
Daher jagt man sie ja auch durch den FFT(fast Fourier transformation).

http://de.wikipedia.org/wiki/Schnell...Transformation

EDIT:
Die Daten bekommst du so!
Delphi-Quellcode:
function SolvePeak(nValue : integer; nTotal : integer): integer;
var
  nRet : Integer;
begin
    nRet := 0;
    If nTotal <> 0 Then
      nRet := (nValue * 100) div nTotal;
    Result := nRet;

end;
Delphi-Quellcode:
var
  nLevel,
  nLpeak,
  nRpeak      : Integer;
begin
  nLevel := BassChannelGetLevel;

  nLpeak := SolvePeak(Loword(nLevel), 128);
  nRpeak := SolvePeak(Hiword(nLevel), 128);
nLpeak und nRpeak enthalten nun jeweils 128 Samples
Damit kannst nun arbeiten.

gruss Emil

Blamaster 22. Jan 2009 20:27

Re: Bass.dll Wave Data / FFT Data ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

danke schonmal für die Hilfe.

Bei der von dir geposteten Funktion habe ich allerdings doch noch ein paar Fragen.

BassChannelGetLevel gibt mir doch nur das aktuelle Level zur gerade gespielten Liedstelle oder ?

Also erhalte ich damit den Peak während der Spielzeit des Lied.

Ich bräuchte aber ein Array in dem ich mithilfe einer Funktion die Peaks des ganzen Liedes bekomme und das ganze ohne das das Lied dazu laufen muss.

Ich hoffe du verstehst was ich meine :)

Achso mit Spekrtum meinte ich soetwas:

Schnipp

mfg Blamaster


[edit=Matze]Bild angehängt. MfG, Matze[/edit]

omata 22. Jan 2009 20:29

Re: Bass.dll Wave Data / FFT Data ?
 
Zitat:

Zitat von Blamaster
... Achso mit Spekrtum meinte ich soetwas: ...

Das ist kein Spektrum, sondern das Zeitsignal.

Blamaster 22. Jan 2009 20:45

Re: Bass.dll Wave Data / FFT Data ?
 
Hi,

jops ich dachte es währe ein Spektrum :wall: sorry.

Die Frage ist dann allerdings trotzdem noch, wie ich an ein Array mit den Peaks kommen kann. :gruebel:

mfg Blamaster

EWeiss 22. Jan 2009 20:50

Re: Bass.dll Wave Data / FFT Data ?
 
Zitat:

ich sitze gerade dran eine "Peak Spektrum" Funktion zu basteln.
Was ich dir gezeigt habe ist ein Spectrum aber das von dir so wie Omata sagt das Zeitsignal.
Meine Antwort war also richtig. ;)

grmmm..
geh auf die Seite und lade dir tsampledisplay3d da steht alles drin. :)
http://www.3delite.hu/Object%20Pasca...display3d.html

gruss Emil

Blamaster 22. Jan 2009 20:59

Re: Bass.dll Wave Data / FFT Data ?
 
Hi,

die kompo hatte ich mir auch schonmal angesehen, leider habe ich sie partu nicht installiert bekommen (alles so eingebunden wie es in der Beschreibung steht).

Außerdem glaube ich das, dass ganze für den Verwendugszweck etwas arge komplex und resourcen fressen ist. (Kann sein das ich mich täusche konnte es wie schon gesagt ja selber noch nicht testen).

Das einfachste währe wirklich ein array mit den peaks.

mfg Blamaster

EWeiss 22. Jan 2009 21:06

Re: Bass.dll Wave Data / FFT Data ?
 
Zitat:

Zitat von Blamaster
Hi,

die kompo hatte ich mir auch schonmal angesehen, leider habe ich sie partu nicht installiert bekommen (alles so eingebunden wie es in der Beschreibung steht).

Außerdem glaube ich das, dass ganze für den Verwendugszweck etwas arge komplex und resourcen fressen ist. (Kann sein das ich mich täusche konnte es wie schon gesagt ja selber noch nicht testen).

Das einfachste währe wirklich ein array mit den peaks.

mfg Blamaster

Es geht nicht darum das du es installieren sollst sondern das du mal in den Source hineinschaust
wie man an die daten gelangt.
Beim besten willen kann dir hier keine komplette Anwendung bereitstellen.
Das Thema kann man nicht einfach mal mit einem Array abtun damit ist es nicht getan.
Letztendlich müssen die Daten ja auch verarbeitet werden.

gruss Emil

omata 22. Jan 2009 21:18

Re: Bass.dll Wave Data / FFT Data ?
 
Schau dir mal meinen BassPlayerEx an. Dort in der Unit BassChannelU.pas ist eine Klasse (TScanThread), die genau das macht, was du haben möchtest.

EWeiss 22. Jan 2009 21:25

Re: Bass.dll Wave Data / FFT Data ?
 
Zitat:

Zitat von omata
Schau dir mal meinen BassPlayerEx an. Dort in der Unit BassChannelU.pas ist eine Klasse (TScanThread), die genau das macht, was du haben möchtest.

Oder so ;)

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.
Seite 1 von 4  1 23     Letzte »    

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