
25.11.2011, 15:00
|
 |
Активный
|
|
Регистрация: 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;
__________________
Програмистами не рождаются, ими становятся!
|