Визуализация в Winamp Advanced Visualization Studio
Музыкальный проигрыватель WinAMP предоставляет пользователю очень большой набор функций,
самой интересной из которых является возможность визуализации звукового потока. Начиная с
версии 2.6, в комплект проигрывателя входит очень мощный инструмент визуализации, называемый
Winamp Advanced Visualization Studio (WVS). Этот модуль позволяет строить графическое
изображение звука в различных вариантах в оконном или полноэкранном режиме. Кроме готовых
визуализаций в WVS входит редактор, позволяющий пользователю самому создать свой вариант.
Работа с WVS очень проста и может быть освоена за несколько минут. Запуск WVS осуществляется
из окна Visualization Plug-ins, вызываемого комбинацией клавиш CTRL-K. Здесь необходимо
выбрать из списка плагинов Winamp Advanced Visualization Studio и нажать кнопку Start. В
результате этого действия появится два окна - экран визуализации WVS, и окно редактора Winamp
AVS Editor. Если окно редактора не появилось, то его можно вызвать двойным нажатием левой
кнопки мыши на экране визуализации.
Окно редактора разделено на две части (Рис.1.). В левой части выводится список используемых
эффектов, в правой - настройки каждого эффекта, если они есть. Внизу окна WVS выводится
количество кадров в секунду, выводимых на дисплей и разрешение экрана визуализации. Главное
меню Winamp AVS Editor состоит из двух пунктов: Preset и Setting. Первый пункт отвечает за
загрузку и сохранение визуализаций, второй - за настройки плагина.
Рис.1. Окно редактора Winamp AVS Editor.
Разработка визуализации в WVS сводится к комбинации и настройке нескольких стандартных
эффектов. При этом у многих из них есть настройки, которые могут задаваться в виде
сложных формул, что позволяет создавать новые необычные визуализации звукового потока.
Для создания своего эффекта визуализации в WVS выбирается из меню PRESET пункт NEW.
После этого в списке эффектов остается только пункт Main, имеющий одну настройку -
Clear every frame (очищать каждый кадр). Если она используется, то каждый кадр будет
рисоваться на чистой поверхности, при не использовании каждый последующий кадр будет
накладываться на предыдущий.
Для добавления эффектов нажимается кнопка "+".Кнопка "-" удаляет выделенный эффект,
кнопка "x2" создает копию выделенного эффекта. При нажатии "+" из ниспадающего меню
можно выбрать один из следующих пунктов:
Presets - загрузка готовых визуализаций. Загрузив готовую визуализацию,
можно посмотреть и изменить ее структуру, что значительно упрощает процесс освоения WVS;
RenderAPE - подключаемые эффекты;
Misc - разные вспомогательные модули;
Trans - эффекты преобразования изображения;
Render - эффекты, генерирующие изображение;
Effect list - список эффектов, позволяющий объединить несколько модулей в один.
Эффекты можно свободно перемещать по списку в нужное место, так как оно имеет немаловажное
значение.
Генерация изображения
Основу любой визуализации составляют эффекты, генерирующие изображение.
Большинство из них имеют некоторые одинаковые элементы настройки.
Прежде всего, это флажок включения - Enable, который очень удобно использовать
при отладке визуализации. Также часто используются настройки цвета.
В WVS они задаются в виде цветной полосы, при нажатии на которую появляется
окно выбора цвета. Во многих эффектах присутствует управление способом вывода
изображения - Blending. Возможны следующие варианты:
- Replace - текущее изображение полностью перекрывает другое;
- Additive blend - цвета изображения складываются;
- Blend 50/50 - старое и новое изображения смешиваются по яркости, составляющей 50%;
- Default render blend mode - режим, включающий способ вывода, заданный по умолчанию.
В стандартную поставку WVS включены следующие эффекты вывода изображения, расположенные в
пункте Render:
AVI - видео. Модуль выводит видеопоток, записанный в формате AVI. Необходимый файл
должен находится в подкаталоге PLUGIN\WVS каталога WINAMP. Движком Speed задается скорость
вывода видеопотока. При выборе способа вывода Blend 50/50 + OnBeat Additive яркость
видеоизображения привязывается к импульсам ударных. Движком Beat persistence задается
количество импульсов ударных, через которое происходит изменение яркости.
Bass Spin - две вращающихся фигуры. Можно включить или выключить каждую фигуру и настроить
их цвет. Позиции Filled triangles и Lines позволяют задать вид фигур в виде заполненных
треугольников или линий.
Clear screen - очистка изображения, позволяющая задавать варианты очистки экрана и цвет фона.
Данный модуль должен находиться в начале списка, так как очищает экран от результатов
действия эффектов, стоящих до него.
Dot Fountain - точечный фонтан. В пункте Rotation задается направление и скорость
вращения частиц, в пункте Angle - угол зрения на фонтан. Через панель Dot Colors
задается цвет частиц от самых верхних - Top до самых нижних - Bottom.
Dot Grid - сетка из точек. На панели Colors можно задать цвет точек. Также можно
установить циклическое изменение цвета точек. Для этого в поле Cycle through устанавливается
число большее 1, равное количеству цветов в цикле. Нажатием на соответствующую часть
цветовой полосы можно задать последовательность цветов в цикле. Поле Grid movement
задает направление и скорость движения сетки из точек. В поле Dot spacing задается
частота точек в сети.
Dot Plane - плоскость из точек. Настройки аналогичны настройкам Dot Fountain.
Moving Particle - движущаяся частица. Выводит на экран движущуюся около центра экрана точку.
На панели Distance from center задается, насколько далеко точка может удаляться от центра
экрана. Движок Particle size задает размер точки. При установке флажка Onbeat sizechange
enabled на панели Particle size (onbeat) частица будет изменять свой размер в момент действия
ударников. Интересные эффекты получаются при использовании нескольких копий данного модуля.
OnBeat Clear - очистка экрана привязанная к импульсам ударных инструментов. В поле
Clear every N beats задается через сколько импульсов будет происходить очистка.
Oscilliscope Star - звезда. Выводит звезду, лучи которой имеют форму осциллограммы сигнала.
Движком Star size задаются размеры звезды. Через панель Rotation можно задать направление
и скорость вращения лучей. Панель Star source and position позволяет задать привязку к
каналу звука и положение звезды на экране.
Picture - выводит на экран графическое изображение, записанное в формате BMP. Настройки в
целом аналогичны модулю AVI. Изображение автоматически масштабируется под размер экрана.
Keep aspect ratio привязывает масштаб изображения к одной из осей.
Ring - кольцо. Настройки в целом аналогичны Oscilliscope Star. На панели Ring source and
position можно задать привязку формы кольца к осциллограмме (Oscilliscope) или анализатору
спектра (Spectrum).
Rotating Stars - вращающиеся звезды. Две звезды вращаются вокруг центра экрана визуализации.
Размер звезд зависит от уровня сигнала. Из настроек доступно только циклическое изменение
цвета.
Simple - графическое отображение сигнала. Выводит осциллограмму (Oscilliscope) или
анализатор спектра (Spectrum), в виде линий (Lines), заполненных прямоугольников (Solid)
или точек (Dot). Можно изменять привязку к каналу звука и границам окна. Доступно также
циклическое изменение цвета.
Starfield - звездное небо. Данный модуль позволяет создать эффект полета сквозь звезды.
Можно изменять скорость движения, количество звезд, метод отображения, цвет.
SuperScope - универсальный визуализатор. Данный модуль - очень мощное средство визуализации,
позволяющее получать самые разнообразные эффекты, вид которых задается математическими
формулами. Для этого используются следующие предопределенные переменные:
n - numpoints - количество точек, составляющих кривую.
x,y - координаты точки на экране. Центр координат находится в центре экрана визуализации.
Значения этих переменных должны находится в диапазоне от -1 до 1.
i - pointpos - номер позиции точки сигнала. Перебирается от 0 до 1 на каждом кадре.
Число шагов перебора равно n.
v - value - значение уровня сигнала в точке i, лежащее в диапазоне от -1 до 1.
b - beat - ударные. В случае наличия импульса ударных, переменная принимает значение 1,
в остальных случаях 0.
w - ширина экрана в пикселях.
h - высота экрана в пикселях.
Red, Green, Blue - яркость красного, зеленого и синего цвета точки изображения.
Кроме предопределенных переменных можно использовать любые произвольные.
Список функций, используемых WVS, приведен в таблице 1.
Таблица 1.
Математические функции WVS.
abs (var) | Возвращает абсолютное значение var |
sin (var) | Возвращает синус угла var (выраженный в радианах) |
cos (var) | Возвращает косинус угла var |
tan (var) | Возвращает тангенс угла var |
asin (var) | Возвращает арксинус var |
acos (var) | Возвращает арккосинус var |
atan (var) | Возвращает арктангенс var |
sqr (var) | Возвращает квадрат var |
sqrt (var) | Возвращает квадратный корень var |
pow (var, var2) | Возвращает var возведенную в степень var2 |
log (var) | Возвращает логарифм var |
log10 (var) | Возвращается логарифм по основанию 10 из var |
sign (var) | Возвращает знак var или 0 |
min (var, var2) | Возвращает минимальную из переменных |
max (var, var2) | Возвращает максимальную из переменных |
rand (var) | Возвращает случайное число между 0 и var |
band(var, var2) | Логическое И |
bor (var, var2) | Логическое ИЛИ |
bnot (var) | Логическое НЕ |
if(cond, vartrue, varfalse) | Условие. Если переменная cond не равна нулю, возвращается vartrue, иначе возвращает varfalse |
equal (var, var2) | Возвращает 1 если var = var2, иначе 0 |
above (var, var2) | Возвращает 1 если var > var2, иначе 0 |
below (var, var2) | Возвращает 1 если var < var2, иначе 0 |
Для ввода формул используются четыре поля. В поле Init задаются начальные значения
переменных, в поле Point описываются уравнения, по которым вычисляются координаты точек,
в поле Frame - уравнения изменения переменных на каждом кадре, в Beat - изменения
переменных при наличии импульсов ударных. Поле Point в обязательном порядке должно
содержать уравнения расчета координат точек изображения x и y. Также обязательно должно
быть задано количество точек кривой n. Разделителем между формулами служит точка с запятой.
Например, строка x=i-0.5;y=v в поле Point и n=10 в поле Init выводит на экран кривую сигнала,
количество вершин в которой равно 10.
Данный модуль позволяет использовать данные осциллографа или анализатора спектра и
устанавливать вид кривой в виде точек (Dots) или линий (Lines) а также циклическое
изменение цвета.
Text - произвольный текст. Позволяет выводить на экран текстовую строку, заданную в поле
Text to Display. Через точку с запятой можно задать несколько частей строки, которые
будут выводиться последовательно. При установке параметра Random вывод частей строки
осуществляется в случайном порядке. Модуль позволяет задать привязку текста на экране
по горизонтали (Horizontal) и вертикали (Vertical), либо выводить его в случайном месте
экрана (Random pos). Также можно задать скорость перемещения текста, его цвет и способ
взаимодействия с изображением.
TimeScope - временной сигнал. Этот эффект рисует изменение сигнала во времени. Для
его нормальной работы нельзя задавать очистку экрана на каждом кадре. Кроме настроек
цвета, взаимодействия с изображением и привязки к каналу звука, модуль содержит движок
Draw, с помощью которого задается, сколько полос сигнала будет рисоваться.
FyrewurX - фейерверк - рисует на экране салют. Из настроек есть только цвет частиц.
Модуль находится в пункте RenderAPE.
Преобразование изображения
В дополнение к эффектам, рисующим изображение, WVS содержит большое количество модулей,
осуществляющих преобразование готового изображения. Данные модули расположены в пункте
Trans. Важно расположение этих модулей в списке эффектов, так как действуют они на
предыдущие эффекты рендеринга. Некоторые из эффектов преобразования описаны ниже.
Blitter Feedback - эхо. Модуль отрисовывает копию экрана с масштабом, задаваемым
движком Blitter Direction. Изменение масштаба можно привязать к импульсам ударных,
установив флажок Blitter Direction (OnBeat).
Blur - размытие. Уменьшает резкость изображения.
Brightness - яркость. Модуль позволяет изменять яркость изображения в целом и каждого из
трех основных цветов - красного (Red), зеленого (Green) и голубого (Blue) по отдельности
при установленном флажке Dissociate RGB Values.
Dynamic Distance Modifier - изменение координат точек изображения в динамическом режиме.
Модуль изменяет расстояние от центра экрана до точки изображения, согласно заданным
формулам в поле Pixel. Значение расстояния задается переменной - d. Работа с Dynamic
Distance Modifier в целом аналогична работе с SuperScope.
Dynamic Shift - динамический сдвиг. Модуль осуществляет сдвиг изображения на расстояние,
задаваемое переменными x и y. Значения переменных рассчитываются по произвольным формулам.
Fadeout - обесцвечивание изображения. Осуществляет преобразование цвета элементов
изображения к заданному в поле Fade to color. Скорость преобразования задается
движком Fade Velocity.
Grain - зерно. Фильтр, осуществляющий вывод изображения в зернистом виде.
Interferences - интерференция. Создает эффект блика и разложения по цветам.
Interleave - решетка. Накладывает на изображение решетку.
Invert - инвертирование цветов изображения предыдущих модулей.
Mirror - зеркальное отображение. Осуществляет зеркальное отображение половины изображения
по следующим направлениям:
Top to Bottom - сверху вниз.
Bottom to Top - снизу вверх.
Left to Right - слева направо.
Right to Left - справа налево.
Параметр Static - задает постоянное отображение, OnBeat Random привязывает отображение
к ударным, Smooth Transitions - сглаживает переходы при изменении отображения.
Mosaic - разбивает изображение на квадратные элементы, образующие мозаику. Размер элементов
задается.
Movement - искажение. Предлагает большой список возможных искажений элементов изображения.
Здесь есть размытие, закручивание, смещение центра и др. Возможно задавать свой вариант
изменения изображения.
Roto Blitter - масштабирование и поворот. Движок Zoom задает масштаб рисунка.
При малых масштабах рисунок циклически повторяется на экране. Движок Rotation задает значение
угла поворота изображения, вокруг центра экрана. Оба параметра можно привязать к импульсам
ударных инструментов.
Scatter - рассеивание. Разбивает изображение на пиксели и смещает их друг относительно друга.
Unique tone - единый цвет. Заменяет цвет всех предыдущих элементов на заданный.
Water - вода. Еще один эффект размытия изображения.
Water Bump - волна на воде. Изменяет изображение в виде концентрических волн на воде.
Волна возникает в момент импульса ударных. Drop position задает центр окружности волны.
Вспомогательные модули
Пункт меню Misc содержит вспомогательные модули.
Comment - комментарий. Позволяет записать произвольный текст.
Custom BPM - ударные. Позволяет производить настройку ударных для использования в WVS.
В частности можно установить длительность импульса (Arbitrary), количество пропускаемых
импульсов (Skip).
Set render mode - установка режима вывода. Позволяет задавать способ вывода изображения
для последующих модулей, а также толщину линий элементов.
Настройки модуля
Кроме различных эффектов WVS имеет значительное число настроек.
Они расположены в меню Settings.
Display - настройки экрана. Здесь следует отметить флажок No minimize on WinAmp minimize,
запрещающий сворачивать экран визуализации при сворачивании проигрывателя.
Fullscreen - настройки полноэкранного режима.
Presets/Hotkeys - настройка "горячих" клавиш, которые могут запускать тот или иной
готовый модуль визуализации. При установке флажка Randomly switch presets модули
визуализации будут случайным образом меняться через заданное время.
Beat Detection - настройки детектора импульсов ударных инструментов.
Пример визуализации
В качестве примера предлагается очень простая визуализация.
Для ее создания из меню Render выбирается эффект Ring. В настройках эффекта в поле
Ring source and position устанавливается привязка вида кольца к анализатору
спектра - Spectrum. Затем из меню Trans выбирается эффект Roto Blitter. В настройках
этого эффекта устанавливается флажок Enable OnBeat changed и несколько уменьшается
значение соответствующего движка. Остальные настройки можно оставить без изменения.
Результат работы данной визуализации приведен на рисунке 2.
Рис.2. Пример визуализации.
Дополнительную информацию можно найти на сайтах и www.winamp.com и www.nullsof.com.
|