|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2014, 22:57 | #1 |
Пользователь
Регистрация: 26.04.2009
Сообщений: 24
|
Визуальный спектр звука
Всем привет!
Не давно в плеере Aimp визуальный спектр на подобие движущийся осциллографа решил попробовать сделать. И вот что получилось. procedure TfrMain.Draw_ChanelLevel(aLevel: DWORD); var aLeft, aRight: single; SpecPos, x, y: integer; mnog : single; VisBuff : TBitmap; const ya : integer = 40; procedure DrawLine(Canvas: TCanvas; X, Y, X2, Y2: Integer); begin Canvas.MoveTo(X, Y); Canvas.LineTo(X2, Y2); end; begin aLeft := 1 * LOWORD(alevel) / 32768; aRight := 1 * HIWORD(alevel) / 32768; VisBuff2.Canvas.Brush.Color := BkgColor; VisBuff2.Canvas.Pen.Color := 0; DrawLine(VisBuff2.Canvas, SpecPos2, 0, SpecPos2, VisBuff2.Height); VisBuff2.Canvas.Pen.Color := $00E6C62D; y := trunc(VisBuff2.Height / 2 - 1); DrawLine(VisBuff2.Canvas, SpecPos2, y, SpecPos2, y - round(y * 0.95 * mnog * aleft)); DrawLine(VisBuff2.Canvas, SpecPos2, y + 2, SpecPos2, VisBuff2.Height - y + round(y * 0.95 * mnog * aright)); SpecPos2 := (SpecPos2 + 1) mod VisBuff2.Width; VisBuff2.Canvas.Pen.Color := 10066329; VisBuff2.Canvas.Pen.Color := 0; VisBuff2.Canvas.Brush.Color := BkgColor; BitBlt(img1.Canvas.Handle, 0, 0, VisBuff2.Width, VisBuff2.Height, VisBuff2.Canvas.Handle, 0, 0, srccopy); end; Не могу заставить спектр двигаться как в Aimp. Для работы с медиа использую библиотеку bass. |
30.01.2014, 23:20 | #3 |
Пользователь
Регистрация: 26.04.2009
Сообщений: 24
|
Не подходит. Данную библиотеку видел, это не то
Есть хорошие примеры визуализации звука http://jqbook.net.ru/delphi/bass_vis.htm. Последний раз редактировалось Abversoft; 30.01.2014 в 23:24. |
31.01.2014, 03:15 | #4 |
Пользователь
Регистрация: 26.04.2009
Сообщений: 24
|
Помогите сделать Scroll спектра звука
|
31.01.2014, 09:28 | #5 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
как понять скрол? что именно нужно?
|
31.01.2014, 12:52 | #6 |
Пользователь
Регистрация: 26.04.2009
Сообщений: 24
|
Чтоб спектр двигался на подобие осциллографа.
Смотри видео Последний раз редактировалось Abversoft; 31.01.2014 в 12:58. |
31.01.2014, 15:43 | #7 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Это не спектр. Это огибающая сигнала, его отсчеты во времени.
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
31.01.2014, 22:50 | #8 |
Пользователь
Регистрация: 26.04.2009
Сообщений: 24
|
|
31.01.2014, 23:09 | #9 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Пример чего? Пример как выглядит у вас же на видео, вот еще как это на чарте выглядит http://www.youtube.com/watch?v=oREzyb4tyq4 (верхний тренд при задании масштаба по оси 0X, т.е. ширины окна и использовании скролла, т.е. смещение окна).
Или пример кода? Не, сами дотумкайте, даю алгоритм: к примеру у вас миллион отсчетов в полном массиве, нужно визуализировать временной интервал из 1000 отсчетов (точек) и иметь возможность смещать временной интервал (окно) от нуля до последнего значения. Как? Что будет, если я возьму из полного массива точки от нуля до 999 и отрисую их? Правильно, визуализирую окно на 1000 точек. А что, если сделаю выборку от 1 до 1001 точки? Правильно, тоже окно на 1000 точек, только уже со смещением вправо по времени. А если смещение (дельту) возьму на 15000 точек? Какие точки мне нужно взять для отображения окна шириной 1000 точек? Логично, что от 15000 до 16000. А если хочу менять ширину окна? Теперь-то ферштеен?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 31.01.2014 в 23:17. |
01.02.2014, 00:27 | #10 | |
Пользователь
Регистрация: 26.04.2009
Сообщений: 24
|
Цитата:
Если не так. То было бы не плохо пример кода |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Музыкальный спектр | Fiery Fox | C# (си шарп) | 5 | 14.06.2011 12:54 |
Спектр сигнала | Zer0 | Помощь студентам | 6 | 01.05.2011 22:27 |
БПФ спектр | Voxa7 | Помощь студентам | 3 | 18.04.2011 14:16 |
спектр различимости | Gunslinger | Помощь студентам | 1 | 30.05.2010 10:54 |
Спектр в MediaPlayer-е | ekzobyte | Мультимедиа в Delphi | 4 | 18.03.2009 20:11 |