Суббота, 20.04.2024, 13:55
Приветствую Вас Гость

Не ошибается тот, кто ничего не делает.
Но и ничего не делать - ошибка.

Эмиль Кроткий

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » Delphi » Создание mp3 плеера на Delphi » Эквалайзер и эффекты bass.dll (Не могу на form2 сделать эквалайзер и эффекты так чтобы они)
Эквалайзер и эффекты bass.dll
NemДата: Вторник, 20.03.2012, 14:21 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
Здравствуйте. Пишу плеер на вашем уроке. Даже уже написал благодоря вашему уроку. Все отлично работает. Но мне этого мало. Я решел сделать эквалайзер на form2 и эффекты(reverb,echo,flanger)
Сам вопрос:
Разместил тракбары на form2, прописал коды которые в вашем уроки в Unit2, подключил bass в 2 х юнитах и Uses form1 прописал Unit2, но настройки эквалайзера а также эффектов не работают. Если эквалайзер и эффекты добавляю на form1 работает все нормально. Программа сама работает и открывает form2 но начинаю настраивать нечего не происходит.

Помогите уже во всех поисковиках перерыл нечего найти немогу подобного. Может как то нужно form2 включить чтобы он настройки посылал на form1. Да еще я новичек в программировании но все схватываю на лету СПС.



Сообщение отредактировал Nem - Вторник, 20.03.2012, 14:21
 
xaramamburuДата: Вторник, 20.03.2012, 16:09 | Сообщение # 2
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Этот код, который вы вставили в unit2, нужно оставить там где он был, а в unit2 перенести код для каждого TrackBar эквалайзера в событии OnChange.
Вот посмотрите здесь, я специально вынес эквалайзер на отдельную форму. Думаю разберетесь. )))
 
NemДата: Вторник, 20.03.2012, 16:15 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
Спс большое седня попробую. Отличный сайт. Я уже незнал что делать. Да впринцепи разабрался начну до делывать. Если возникнут вопросы то вам еще напишу.
 
Filo$oFДата: Вторник, 20.03.2012, 16:15 | Сообщение # 4
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 2
Статус: Offline
xaramamburu,
Я использовал код, когда громкость регулируется путём передвижения одного Imagе по другому.
Но, эту проблему уже решил. И с перетаскиванием формы разобрался.

У меня остался последний вопрос...
Не могли бы вы привести примеры, как использовать эффекты в плеере (типо Flanger, Echo, Click) но толкьо что бы их можно было включать CheckBox-ами и регулировать Trackbarom-и.
Если не сложно, конечно smile
Я посмотрел демо к bass.dll но что-то ничего не понял...
 
xaramamburuДата: Вторник, 20.03.2012, 16:16 | Сообщение # 5
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Filo$oF, вот пример для REVERB и ECHO, думаю для остальных делается также:
И так, в разделе Var описываем:

fx: array[1..2] of integer;
//настройки эффектов
ReverbParam: BASS_DX8_REVERB;
EchoParam: BASS_DX8_ECHO;

Далее процедура для CheckBox-а ревербера:

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked = true then
begin
fx[1] := BASS_ChannelSetFX(channel, BASS_FX_DX8_REVERB, 1);
ReverbParam.fInGain := 0.0;
ReverbParam.fReverbMix :=-trackBar1.Position;// может изменяться от -96 до 0, по умолчанию 0 (смотрите справку по bass)
ReverbParam.fReverbTime := 1000.0;
ReverbParam.fHighFreqRTRatio := 0.1;
BASS_FXSetParameters(Fx[1], @ReverbParam);

end
else
BASS_ChannelRemoveFX(channel, fx[1]);
end;

Процедура регулировки Trackbarom:

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if BASS_FXGetParameters(Fx[1], @ReverbParam) then
begin
ReverbParam.fInGain := 0.0;
ReverbParam.fReverbMix := -trackBar1.Position;
ReverbParam.fReverbTime := 1000.0;
ReverbParam.fHighFreqRTRatio := 0.1;
BASS_FXSetParameters(Fx[1], @ReverbParam);
end;

end;

Аналогично для ECHO:

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked = true then
begin
fx[2] := BASS_ChannelSetFX(channel, BASS_FX_DX8_ECHO, 1);
EchoParam.fWetDryMix := trackBar2.Position;
EchoParam.fFeedBack := 50.0;
BASS_FXSetParameters(fx[2], @EchoParam);
end
else
BASS_ChannelRemoveFX(channel, fx[2]);
end;

procedure TForm1.TrackBar2Change(Sender: TObject);
begin
if BASS_FXGetParameters(fx[2], @EchoParam) then
begin
EchoParam.fWetDryMix := trackBar2.Position;
EchoParam.fFeedBack := 50.0;
BASS_FXSetParameters(fx[2], @EchoParam)
end;
end;

Далее сами разберетесь.))))
 
VladДата: Понедельник, 14.10.2013, 23:43 | Сообщение # 6
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
ругается на fx
 
xaramamburuДата: Вторник, 15.10.2013, 11:34 | Сообщение # 7
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Ругается как?
 
VladДата: Вторник, 15.10.2013, 16:29 | Сообщение # 8
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
Identifer redeclared fx. в варе ругается
 
xaramamburuДата: Вторник, 15.10.2013, 18:21 | Сообщение # 9
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
Ну и в чем проблема то? Вы читать не умеете или переводчиком пользоваться? Вам здесь ясно написано, что у вас переменная (идентификатор) fx редекларирован,  т.е. он уже использован ранее.))))
 
VladДата: Вторник, 15.10.2013, 19:22 | Сообщение # 10
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
ну а чем его тогда заменить?
 
xaramamburuДата: Вторник, 15.10.2013, 22:17 | Сообщение # 11
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
А кто вам сказал, что надо, что то заменять? Это всего лишь пример. Если у вас эта переменная уже используется так замените ее на другую или увеличьте размерность уже имеющегося массива fx. Или вы в паскале совсем ничего не понимаете, то вам дорога не плееры писать, а читать умные книжки по основам программирования.))))
 
VladДата: Вторник, 15.10.2013, 22:29 | Сообщение # 12
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
нет, понимаю, просто я с этим никогда не сталкивался
 
xaramamburuДата: Вторник, 15.10.2013, 23:48 | Сообщение # 13
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
С чем не сталкивались? С массивом типа Integer на 2 элемента (fx: array[1..2] of integer)?
 
VladДата: Вторник, 15.10.2013, 23:49 | Сообщение # 14
Лейтенант
Группа: Пользователи
Сообщений: 57
Репутация: 0
Статус: Offline
да
 
xaramamburuДата: Среда, 16.10.2013, 21:01 | Сообщение # 15
Полковник
Группа: Администраторы
Сообщений: 240
Репутация: 26
Статус: Offline
sad
 
Форум » Delphi » Создание mp3 плеера на Delphi » Эквалайзер и эффекты bass.dll (Не могу на form2 сделать эквалайзер и эффекты так чтобы они)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Copyright MyCorp © 2024Конструктор сайтов - uCoz