Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2009, 13:17   #11
Elem
 
Регистрация: 02.01.2009
Сообщений: 7
По умолчанию

Понял, спасибо за помощь!!! Ещё один вопрос, как мне сделать, так чтобы я получал массив амплитуд и частот для каждой последюющей секнды, но мне, не нужен интерфейс, мне в результате всего лишь нужен текстовый файл. То есть, каким образом мне разбить поток на секунды, и для каждой найти массив? Пробовал:
Код:
for i:=1 to long do
 begin
  posit:=posit+round(d/long);
  BASS_ChannelSetPosition(stream,posit,BASS_POS_BYTE);
  BASS_ChannelGetData(stream,@fft,BASS_DATA_FFT1024);
.........................................................................
 end;
где d-длина в байтах, long - длина в секундах.
Так, вроде должно работать.
Elem вне форума Ответить с цитированием
Старый 09.01.2009, 13:54   #12
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

Ну я бы сделал так:
BASS_ChannelGetData(channel1, @fftdata, BASS_DATA_FFT4096);

for i:=0 to 149 do begin
//сохранить в файл амплитуду fftdata[i];
//сохранить в файл частоту (i*11025/4096)
end;
это закинул бы в таймер с интервалом 1 сек.
В результате в файле получилось бы 150 записей для каждой секунды.
амплитуда
частота
амплитуда
частота
.......
iankov вне форума Ответить с цитированием
Старый 09.01.2009, 15:20   #13
Elem
 
Регистрация: 02.01.2009
Сообщений: 7
По умолчанию

Оно то так, только тогда надо будет ждать 150 секунд, а я бы хотел, чтобы этот цикл быстро прошёл.
Elem вне форума Ответить с цитированием
Старый 09.01.2009, 17:20   #14
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

Не понял, почему 150 сек?

procedure timer1.timer(лялялял, не помню как там...);
begin

BASS_ChannelGetData(channel1, @fftdata, BASS_DATA_FFT4096);
for i:=0 to 149 do begin
//сохранить в файл амплитуду fftdata[i];
//сохранить в файл частоту (i*11025/4096)
end;

end;

Цикл пройдет настолько быстро, насколько позволяет процессор для обработки данных и диск для записи данных - у меня это выполняется в миг.
iankov вне форума Ответить с цитированием
Старый 09.01.2009, 18:01   #15
Elem
 
Регистрация: 02.01.2009
Сообщений: 7
По умолчанию

А какой интервал на таймере?
Elem вне форума Ответить с цитированием
Старый 09.01.2009, 18:41   #16
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

1.jpg
Interval на скрине установлен в 1000 - т.е. 1000 миллисекунд что равно 1сек. Каждую 1 сек исполняется код находящийся внутри процедуры, которая автоматически создается если сделать двойной клик по компоненту который находится на форме.
iankov вне форума Ответить с цитированием
Старый 17.07.2009, 17:27   #17
Berkutfso
Новичок
Джуниор
 
Регистрация: 12.07.2009
Сообщений: 1
По умолчанию

А исходник всей программы выложить слабо??
Berkutfso вне форума Ответить с цитированием
Старый 19.07.2009, 11:04   #18
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

а зачем вообще это...
посмотри исходник Easy Player, там есть юнит спектр...
там всё что тебе нужно, если ты спектр хочешь сделать...
ZuBy вне форума Ответить с цитированием
Старый 19.07.2009, 11:04   #19
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Easy Player есть на форуме...
ZuBy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
библиотека bass.dll, что это такое? дайте ссылку на хелп. vitalik007 Общие вопросы Delphi 2 29.02.2012 18:03
bass.dll и mms потоки vismut Мультимедиа в Delphi 8 07.10.2011 19:01
Помогите с параметрическим эквалайзером в BASS.DLL! N-DOGG Компоненты Delphi 2 04.01.2009 16:05
как соеденить dll bass blackstersl Общие вопросы Delphi 4 25.09.2008 17:52
bass.dll - ошибка - Use the step or run to continue. vitalik007 Общие вопросы Delphi 1 20.08.2007 19:59