Показать сообщение отдельно
  #3  
Старый 25.11.2011, 15:00
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

Не знаю, актуально или нет, но мало ли кому понадобится

Код:
uses bass;

type
  FFTData = array[0..2048] of Single;

var
  FData: FFTDATA;
  Chan: DWORD;

function DuffRecording(handle : HRECORD; const Buffer : Pointer; Length : DWORD; user : Pointer) : Boolean; stdcall;
begin
  Result := True;	// continue recording
end;

procedure TForm1.FormShow(Sender: TObject);
begin
    BASS_RecordInit(-1);
    Chan := BASS_RecordStart(44100, 2, 0, @DuffRecording, NIL);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
Var
i:integer;
begin
BASS_ChannelGetData(chan, @FData, BASS_DATA_FFT256);
//BASS_DATA_FFT256 - количество выборки частот, можно использовать
//от 256 до 4096

   For i:=0 to 256 do begin //раз выбрали 256
   Trunc(Abs(FData[i])) //вот тут каждому i будет уровень сигнала спектра
   end;

end;
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием