Entwickler-Ecke

Multimedia / Grafik - Frequenz eines audios darstellen


Joker_07 - Mi 30.04.08 18:58
Titel: Frequenz eines audios darstellen
Ich hab ein Audioplayer programmiert, was bisher ziemlich gut funktioniert und ich es gerne "design-mäßig" überarbeiten möchte, dabei möchte ich gern ein schwarzes feld haben und die frequenz eines audios(am besten stereomix) darszustellen entweder mit einem balken, der auf und ab geht oder ein Graph mit x und y richtung, wie bei einem koordinatensystem, nur ich hab bisher alles mögliche probiert, würde gerne ein paar tipps hören wie ich das realisieren könnte. wäre nicht schlecht wenn ich ein paar tipps bekommen könnte :)
Mfg Joker_07


Moderiert von user profile iconGausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 30.04.2008 um 20:59


jakobwenzel - Mi 30.04.08 19:20

Wie spielst du denn momentan die Töne ab?


Jerk - Mi 30.04.08 20:49

Falls du die Bass.dll benutzt,

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
Data : Array[1..512of Single;
...
Stream:= BASS_StreamCreateFile(False, PChar(Filelistbox1.FileName), 00, flags);
...
procedure Player1.IdleHandler;
...
Bass_ChannelGetData(stream, @data, BASS_DATA_FFT512);
Amplitude := 30;
with image1.canvas do
begin
for I = 1 to 512 do
 begin
  moveto(i*0.1,-100);
  lineto(i*0.1,-100+Data[i]*Amplitude)
 end;
end;
...

Das Array Data wird damit bei jedem aufruf mit den jeweiligen Pegeln der einzelnen Frequenzen gefüllt.