Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/54: Рейтинг темы: голосов - 54, средняя оценка - 4.50
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
1

Эквалайзер

08.04.2010, 23:49. Показов 10922. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Есть звукавая программа, как звук регулировать знаю, а Эквалайзер сделать не знаю,
тупо набрасал на Form TrackBarоv, а под ними ProgressBarы для каждой частоты. Тем по инету не мало,
но как обзавязать и получить всё это, возник вопрос?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2010, 23:49
Ответы с готовыми решениями:

Как сделать эквалайзер?
Как сделать эквалайзер и регулировку баланса? Желательно с использованием bass.dll.

Как сделать эквалайзер в С++ Builder 6
как сделать эквалайзер в С++ Builder 6 ?

Визуализация - как реализовать эквалайзер (bass.dll)
Все доброго времени суток. Кто может подсказать, как реализовать эквалайзер? Нашёл тут по темам вот...

Эквалайзер (bass.dll) - Cannot convert BASS_DX8_PARAMEQ to const void
fx = BASS_ChannelSetFX(stream, BASS_FX_DX8_PARAMEQ, 1); fx = BASS_ChannelSetFX(stream,...

11
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
09.04.2010, 00:45 2
Garic_,
Цитата Сообщение от Garic_ Посмотреть сообщение
а под ними ProgressBarы для каждой частоты.
лучше сделать прорисовку на динамическом TBitmape *t_bm, а затем
перенести на PaintBox или Image с помощью image->canvas->draw(0,0,t_bm);
прорисовать что-то типа вот такого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    Canvas->Brush->Color = clBtnFace;
    Canvas->FillRect ( Canvas->ClipRect );
 
    int x = random ( 0x80 );
    int y = random ( 0x80 );
    int z = random ( 0x80 );
 
    int p = 24;
    Canvas->Pen->Color = clTeal;
    Canvas->Brush->Color = clAqua;
    Canvas->Rectangle( p, 0x80, p*2, 0x80 - x );
 
    Canvas->Brush->Color = clGray;
    Canvas->Rectangle( p*3, 0x80, p*4, 0x80 - y );
 
    Canvas->Brush->Color = clSilver;
    Canvas->Rectangle( p*5, 0x80, p*6, 0x80 - z );
 
    Canvas->Pen->Color = clBtnFace;
    Canvas->Brush->Color = clBtnFace;
    for ( int i = 0; i < 0x80; i += 5 )
    Canvas->Rectangle( 0, i, p*6, i + 2 );
}
//---------------------------------------------------------------------------
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
09.04.2010, 20:24  [ТС] 3
Подкинул на Image, красота, вообщем программа клас, мне понравилась. Спасибо.
Но есть всё таже делема, вместо переменых x,y,z кинул аудио сигнал (LevelLeft), всё колеблется от уровня сигнала (одинаково вместе), а нужно за разными частотами от 20 до 20000гц. Как этот аудио сигнал (LevelLeft), разбить на разные частоты.
0
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
09.04.2010, 21:14 4
Цитата Сообщение от Garic_ Посмотреть сообщение
Как этот аудио сигнал (LevelLeft), разбить на разные частоты.
Как ты раньше разбивал?
Цитата Сообщение от Garic_ Посмотреть сообщение
а под ними ProgressBarы для каждой частоты.
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
09.04.2010, 21:29  [ТС] 5
Как ты раньше разбивал?
Разбивал но не за f-частотами.
Код
ProgressBar3->Position=LevelLeft-10;
ProgressBar4->Position=LevelLeft-20;
ProgressBar5->Position=LevelLeft-30;
ProgressBar6->Position=LevelLeft-40;
Может фильтр нужен с TrackBarами, но как не знаю?
0
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
09.04.2010, 21:38 6
Цитата Сообщение от Garic_ Посмотреть сообщение
Разбивал но не за f-частотами.
Код:
ProgressBar3->Position=LevelLeft-10;
Ну - это ты не разбивал, а занижал.

Нужно брать выборку и с помощью быстрого преобразования фурье
Цитата Сообщение от Garic_ Посмотреть сообщение
Тим Кинцель программирование звука на пк, и о Фурье понятно описано, ею пользовался.
делить на чостоты.
1
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
09.04.2010, 22:16 7
Используй библиотеку bass или учи мат часть, преобразование Фурье и тому подобное.
Bass это простое и удобное решение.
1
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
09.04.2010, 22:25 8
Вот это вещь серозная:
Миниатюры
Эквалайзер  
1
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
09.04.2010, 22:25 9
это не из bass
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
09.04.2010, 23:44  [ТС] 10
Genius Ignat это не из bass
, заинтреговал? Пож. по подробнее.
И пож. про bass.dll, где могу скачать (C++ Builder Библиотека bass)? Признаюсь не знаком.

mirso делить на чостоты
что ты имел ввиду LevelLeft/f ???
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
12.04.2010, 09:58  [ТС] 11
что ты имел ввиду LevelLeft/f ???
Вопрос стоит, TrackBar регулирует на определёной f-частоте силу сигнала, (фильтр пробка).
0
64 / 40 / 10
Регистрация: 12.11.2010
Сообщений: 841
18.11.2011, 22:05 12
Цитата Сообщение от mirso Посмотреть сообщение
Garic_,

лучше сделать прорисовку на динамическом TBitmape *t_bm, а затем
перенести на PaintBox или Image с помощью image->canvas->draw(0,0,t_bm);
прорисовать что-то типа вот такого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    Canvas->Brush->Color = clBtnFace;
    Canvas->FillRect ( Canvas->ClipRect );
 
    int x = random ( 0x80 );
    int y = random ( 0x80 );
    int z = random ( 0x80 );
 
    int p = 24;
    Canvas->Pen->Color = clTeal;
    Canvas->Brush->Color = clAqua;
    Canvas->Rectangle( p, 0x80, p*2, 0x80 - x );
 
    Canvas->Brush->Color = clGray;
    Canvas->Rectangle( p*3, 0x80, p*4, 0x80 - y );
 
    Canvas->Brush->Color = clSilver;
    Canvas->Rectangle( p*5, 0x80, p*6, 0x80 - z );
 
    Canvas->Pen->Color = clBtnFace;
    Canvas->Brush->Color = clBtnFace;
    for ( int i = 0; i < 0x80; i += 5 )
    Canvas->Rectangle( 0, i, p*6, i + 2 );
}
//---------------------------------------------------------------------------
Доброго времени суток. А вы не могли бы скинуть исходник с перенесённым в PaintBox, а то перенёс, а он не меняет фон, и получается при смене цвета окна цвет PaintBox остаётся стандартным.

Добавлено через 4 минуты
Ну или если не менять цвет, то как картинку которая не будет исчезать на задний фон воткнуть?
0
18.11.2011, 22:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2011, 22:05
Помогаю со студенческими работами здесь

Эквалайзер
Здравствуйте, делаю так volumeProgressBar.setOnSeekBarChangeListener( new...

Эквалайзер
Как сделать что то на подобии эквалайзера только что бы при высоких басах выполнялась процедура???

эквалайзер
Доброго времени суток. решил написать свой проигрыватель на базе класса MediaPlayer. Однако в этом...

Эквалайзер
Приветствую всех! =)) Интересует следующий вопрос. Какие эквалайзеры в интегральном исполнении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru