AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bass.dll "channelgetdata" Analyzer unter 43Hz ?
Thema durchsuchen
Ansicht
Themen-Optionen

Bass.dll "channelgetdata" Analyzer unter 43Hz ?

Ein Thema von Ronny81 · begonnen am 4. Aug 2008 · letzter Beitrag vom 5. Aug 2008
Antwort Antwort
Ronny81

Registriert seit: 7. Jan 2007
7 Beiträge
 
#1

Bass.dll "channelgetdata" Analyzer unter 43Hz ?

  Alt 4. Aug 2008, 23:46
Hallo zusammen,

ich habe mir vor einiger Zeit einen Analyzer mit der Bass.dll geschrieben, funktioniert soweit
super, nur hätte ich auch gerne Frequenzen unter 43Hz gesehen, weis einer von euch wie ich das
anstellen so?

Ich habs bis jetzt so gemacht:

Delphi-Quellcode:

function RecordingCallback(Handle: HRECORD; buffer: Pointer; length, user: DWord): boolean; stdcall;
var i: integer;
    a: integer;
    FFTFata : TFFTData;
begin

   Form1.WaveStream.Write(buffer^, length);

   Result := True;

BASS_ChannelGetData(Handle, @fft, BASS_DATA_FFT1024);

Form1.ProgressBar1.Position := Trunc( Abs(FFT[1]) * 500 ); // 43 Hz
Form1.ProgressBar2.Position := Trunc( Abs(FFT[2]) * 500 ); // 86 Hz
Form1.ProgressBar3.Position := Trunc( Abs(FFT[3]) * 500 ); // 129 Hz
Form1.ProgressBar4.Position := Trunc( Abs(FFT[4]) * 500 ); // 172 Hz
Form1.ProgressBar5.Position := Trunc( Abs(FFT[5]) * 500 ); // 215 Hz
Form1.ProgressBar6.Position := Trunc( Abs(FFT[6]) * 500 ); // 258 Hz
Form1.ProgressBar7.Position := Trunc( Abs(FFT[7]) * 500 ); // 301 Hz
Form1.ProgressBar8.Position := Trunc( Abs(FFT[8]) * 500 ); // 344 Hz
Form1.ProgressBar9.Position := Trunc( Abs(FFT[9]) * 500 ); // 387 Hz

usw...
Aber so kann ich eben nur bis min 43Hz runter. Wegen der Bässe hätte ich es aber gerne bis
5 oder 10Hz.

Vielen Dank schon mal.

Gruß Ronny
  Mit Zitat antworten Zitat
Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#2

Re: Bass.dll "channelgetdata" Analyzer unter 43Hz

  Alt 5. Aug 2008, 05:40
http://www.michaelgaedtke.de/Home/index.html

8)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Bass.dll "channelgetdata" Analyzer unter 43Hz

  Alt 5. Aug 2008, 13:41
Du benutzt 1024 Stützpunkte, real benutzbar ist nur die Hälfte also 512 Werte.

20000Hz / 512 = 40Hz

Ich weiss nicht wie du da auf 43Hz kommst. Wenn du jetzt mehr Stützpunkte benutzt dann wird der Abstand zwischen den Einzelfrequenzen kleiner.
Also z.B. 8192 Werte (Konstante = BASS_DATA_FFT8192) dann ist 20000Hz / 4096 = 5Hz.

Dafür ist die bass-Hilfe auch sehr sinnvoll...
Zitat von bass.chm:
When requesting FFT data, floating-point values ranging from 0 to 1 are returned. Only the first half of the FFT is useful, so that's what BASS returns. For example, with a 2048 sample FFT, it will return 1024 values; the 1st value being the DC component, the 2nd being the amplitude at 1/2048 of the channel's sample rate, then the amplitude at 2/2048, 3/2048, etc... A Hann window is applied to the sample data to reduce leakage, unless the BASS_DATA_FFT_NOWINDOW flag is used.
Hier erfährt man auch etwas über den ersten Werten. Dieser stellt den DC-, also den Gleichspannungswert, dar.
  Mit Zitat antworten Zitat
Ronny81

Registriert seit: 7. Jan 2007
7 Beiträge
 
#4

Re: Bass.dll "channelgetdata" Analyzer unter 43Hz

  Alt 5. Aug 2008, 14:45
Hallo Wishmaster und omata,

danke für eure Antworten.
Ich habe jetzt die Sempelrate rauf gestellt so wie "omata" das beschrieben hat. Danke
Ich habes auch genau so auf der Webseite von "Wishmaster" gefunden. Super Tutorials.

Danke euch.

P.S. Die Hilfe kenn ich schon, aber mein Englisch und mein Delphi ist dafür einfach nicht gut genug

Jetzt läuft die Basserkennung schon viel besser.

Gruß Ronny
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:01 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