2009-04-01
AVS & APE
WinAMP 5.24 AVS 2.81b
WinAMP 2.78
AVS 2.5 (частично)
* Часто используемые
выражения:
reg00=t;
t=$(reg00:1.2)
x0=getkbmouse(1); reg01=x0;
y0=getkbmouse(2); reg02=y0;
//x0=0.0;
y0=0.0;
x=x0+x*h/w;
y=y0+y;
x0=$(reg01:1.1)
y0=$(reg02:1.1)
* Обозначение:
AVS (Advanced Visualisation Studio) - студия
визуализации.
APE (Advanced Visualisation Studio Plugin Effects) -
плагины эффектов.
* Зарезервированные переменные:
n [100](1..1000),
i(0..1), v(-1..1),
b[0](0;1), w[640], h[480],
x [0](-1..1), y [0](-1..1),
d
[1](0..sqrt(2)), r [2.22](-pi..+pi), alpha [0.5](0..1),
skip [0](0), drawmode
[0](0), linesize [1](0..255),
red [1](0..1), green [1](0..1), blue
[1](0..1),
reg00..reg99,
* Полноэкранный режим (Fullscreen Settings)
P4-1300 1024х768х32 : 640x480:32BPP,
512x384:32BPP
P2-366 1024х768х32 : 320х240:32BPP
Высота экрана в процентах для рендеринга: 100
Ожидание
восстановления: Нет ?
Клик по страницы (медленно, гладко): Да
?
Быстрое программное bpp преобразование: Нет ?
Показывать
счетчик частоты (количества кадров): Да
* Настройки модуля (меню Settings)
Display - настройки экрана. Здесь можно отметить флажок No minimize
on WinAmp minimize, запрещающий сворачивать экран визуализации при сворачивании
проигрывателя.
Fullscreen - настройки полноэкранного
режима.
Presets/Hotkeys - настройка "горячих" клавиш, которые могут
запускать тот или иной готовый модуль визуализации. При установке флажка
Randomly switch presets модули визуализации будут случайным образом меняться
через заданное время.
Beat Detection - настройки детектора импульсов
ударных инструментов.
* FPS
Строка слева внизу окна редактора показывает текущую FPS - частоту кадров,
изменяющуюся в зависимости от загруженности процессора, и размер окна
визуализации в пикселах (656х488). Оптимальное значение FPS составляет
приблизительно 60 FPS (Render / Dot Plane для проверки). Если значение
существенно меньше, то пресет
или неправильно составлен,
или
перегружен эффектами,
или нарушены настройки AVS по
умолчанию,
или не хватает мощности процессора.
* Редактор AVS
AVS Editor Settings
Режимы смешивания:
Replace (Замена)
Additive blend (Общая
смесь)
Blend 50/50 (Смесь пополам)
OnBeat - По тактам
Шаблон -> Создать
"+" Добавить
"х2" Клонировать
"-" Удалить
* Вспомогательные модули
+ Misc /
Buffer Save - Буферное
Сохранение
Comment -
комментарий
Custom BPM - ударные. Позволяет
производить настройку ударных для использования в WVS. В частности можно
установить длительность импульса (Arbitrary), количество пропускаемых импульсов
(Skip).
Set Render mode - установка режима вывода. Позволяет задавать
способ вывода изображения для последующих модулей, а также толщину линий
элементов.
* Генерация изображения [Объект]
+ Render /
AVI
- видео PLUGIN\WVS, яркость привязывается к ударным, OnBeat 1
Render Bass
Spin - кружение, два пропеллера,
OnBeat 2
Clear
screen - чистый экран, необходимо всегда,
размещается над объектом
Render Dot Fountain -
точечный фонтан, OnBeat 5
Dot
Grid - сетка из
точек
Render Dot Plane -
точечная плоскость, OnBeat 5
Render Moving Particle - движущаяся
частица, круг, OnBeat 1
OnBeat
Clear - очищать каждые N ударов
(вспышка)
Render Oscilliscope Star - осциллографическая звезда, OnBeat
1
Render Picture
- изображение *.bmp (папка avs\)
Render
Ring
- кольцо, OnBeat Oscilliscope
Render Rotating Stars - две
звезды, OnBeat 2
SVP
Loader - библиотека SVP
Render
Simple -
спектр, простая горизонтальная линия, OnBeat Oscilliscope
Render
Starfield - звездное поле,
OnBeat 1
SuperScope - Супер Область,
OnBeat Oscilliscope
Render SuperScope
Spiral
- спираль
Render SuperScope 3D Scope
Dish - блюдо
Render
SuperScope Rotating Bow Thing - лепестки
Render SuperScope
Vertical Bouncing - вертикаль
Render SuperScope
Spiral Graph Fun - функция
Render SuperScope
Alternationg Diagonal - диагональ
Render SuperScope Vibration
Worm - червь
Dots - вид
кривой в виде точек
Lines - вид кривой в виде линий
Render
Text
- Текст, OnBeat 1
Time
scope - Шкала Времени (вертикальная
линия), OnBeat Oscilliscope
* Преобразование изображения [Изменение] (всегда после объекта)
+ Trans /
Trans Blitter Feedback - эхо, OnBeat.
Blur
- размытие.
Brightness
- яркость.
Bump
- Разрыв
Color
Clip
- Цветной Клип
Color
Fade
-
Dynamic Distance Modifier - изменение
координат.
Dynamic
Movement - Динамическое
Перемещение
Dynamic
Shift -
динамический сдвиг на величину x и y
(320х240).
Fadeout
- обесцвечивание изображения.
Fast
Brightness - Быстрая
Яркость
Grain
- зернистость.
Trans
Interferences
- интерференции (радуга), OnBeat.
Trans
Interleave
- решетка, OnBeat.
Invert
- инвертирование (негатив).
Mirror
- зеркало.
Mosaic
- мозаика.
Movement
- искажение.
Trans Roto
Blitter
- масштабирование и поворот, OnBeat.
Scatter
- рассеивание.
Unique
tone
- единый цвет.
Water
- вода
Water
Bump
- волна.
Effect list - список эффектов, позволяющий объединить несколько модулей в
один (логическая скобка).
* SuperScope:
Эффекты, вид которых задается математическими формулами.
Для этого
используются следующие предопределенные переменные:
n [numpoints] - количество опорных точек, составляющих кривую (от 1
до бесконечности) [100].
x,y - координаты точки на экране (-1..+1, ноль
в центре экрана визуализации) [0].
i [pointpos] - номер позиции точки
сигнала (0...1). Перебирается от 0 до 1 на каждом фрейме, с n - числом шагов
перебора. (i*n) - определение абсолютного значения точки.
v [value] -
значение уровня сигнала в точке i (-1...1).
b [beat] - ударные. В
случае наличия импульса ударных, переменная принимает значение 1, в остальных
случаях 0 (1 if beat) [0].
w [width] - ширина экрана в пикселях
[320].
h [height] - высота экрана в пикселях [240].
red, green, blue
- яркость красного, зеленого и синего цвета точки изображения [1].
For the "Per Point" expression (which happens n times) use:
red green
and blue are all (0...1)
red=cos(r)+1;blue=sin(r);green=sin(i)/2
?
x=t+0.3*v*pow(sin(i*3.14159),2); y=i*2-1.0;
red=abs(v*2); green=abs(i);
blue=abs(1.0-i);
Rect coor (полярные координаты):
d [distance] - дистанция (расстояние от
центра) (0...1).
r [rotation] - угол (от горизонтали вправо) (0...2Pi).
Для ввода формул используются четыре поля:
Init (юнит) - задаются
начальные значения переменных (specifies number of points to
render).
On Beat (кадр) - изменения переменных при наличии импульсов
ударных (tv).
Per Frame (удар) - уравнения изменения переменных на
каждом кадре (t).
Per Point (пункт) - описываются уравнения, по которым
вычисляются координаты точек. Поле в обязательном порядке должно содержать
уравнения расчета координат точек изображения x и y. Также обязательно должно
быть задано количество точек кривой n.
Разделителем между формулами служит
точка с запятой.
Функции
rand(var) Возвращает случайное число между 0 и var
Операторы
Преобразовывают две величины в целое:
% performs division, returns
remainder
| returns bitwise OR of both values
& returns
bitwise AND of both values
// Толщина линии:
linesize=3;
// Пересчёт пропорций экрана:
x=x*h/w;
// Пересчёт яркости:
red=(i); green=(i); blue=(i);
red=(i+0.1); green=(i+0.1);
blue=(i+0.1);
red=(1-i); green=(1-i); blue=(1-i);
// Пересчёт радиан в градусы:
rot=if(below(abs(rot),(2*$PI)),rot,0); reg00=rot*180/$PI;
// Преобразование между полярными и прямоугольными координатами:
r=atan2(-x,-y);
d=sqrt(sqr(x)+sqr(y);
x=-d*sin(r);
y=-d*cos(r);
// 2D прямоугольник:
n=5; dn=1/(n-1);
xt=dx*(-equal(i,0*dn)-equal(i,1*dn)+equal(i,2*dn)+equal(i,3*dn)-equal(i,4*dn));
yt=dy*(-equal(i,0*dn)+equal(i,1*dn)+equal(i,2*dn)-equal(i,3*dn)-equal(i,4*dn));
zt=0;
xt=dx*sign(sin(i*2*$PI));
yt=dy*sign(cos(i*2*$PI));
// 2D матрица вращения (поворот предмета на плоскости):
x0=0.0; y0=0.0; dx=0.7; dy=0.7;
rz=rz+0.010; cosrz=cos(rz);
sinrz=sin(rz);
x=x0+xt*cosrz-yt*sinrz;
x=x*h/w;
y=y0+xt*sinrz+yt*cosrz;
x=xt*cos(rz)-yt*sin(rz);
y=xt*sin(rz)+yt*cos(rz);
x=xt*cos(rz)+yt*sin(rz);
y=xt*sin(rz)-yt*cos(rz);
// 3D куб:
n=10; dn=1/(n-1);
xt=dx*(-equal(i,0*dn)-equal(i,1*dn)+equal(i,2*dn)+equal(i,3*dn)-equal(i,4*dn)-equal(i,5*dn)-equal(i,6*dn)+equal(i,7*dn)+equal(i,8*dn)-equal(i,9*dn));
yt=dy*(-equal(i,0*dn)+equal(i,1*dn)+equal(i,2*dn)-equal(i,3*dn)-equal(i,4*dn)-equal(i,5*dn)+equal(i,6*dn)+equal(i,7*dn)-equal(i,8*dn)-equal(i,9*dn));
zt=0;
zt=if(below(i,5*dn),0,dz);
// 3D матрица вращения (поворот предмета в пространстве):
x0=0.0; y0=0.0; z0=-2.0; dx=1.0; dy=1.0; dz=0.0;
rx=rx+0.010;
ry=ry+0.020; rz=rz+0.030;
cosrx=cos(rx); sinrx=sin(rx); cosry=cos(ry);
sinry=sin(ry); cosrz=cos(rz); sinrz=sin(rz);
yry=yt; zry=zt*cosry-xt*sinry; xry=zt*sinry+xt*cosry; xt=xry; yt=yry;
zt=zry;
xrx=xt; yrx=yt*cosrx-zt*sinrx; zrx=yt*sinrx+zt*cosrx; xt=xrx;
yt=yrx; zt=zrx;
zrz=zt; xrz=xt*cosrz-yt*sinrz; yrz=xt*sinrz+yt*cosrz;
xt=xrz; yt=yrz; zt=zrz;
x1=x; y1=y; z1=z;
x2=x1*cos(rotz)-y1*sin(rotz);
y2=x1*sin(rotz)+y1*cos(rotz); z2=z1;
x3=x2*cos(roty)+z2*sin(roty); y3=y2;
z3=-x2*sin(roty)+z2*cos(roty);
x4=x3; y4=y3*cos(rotx)-z3*sin(rotx);
z4=y3*sin(rotx)+z3*cos(rotx);
// Прямая линейная перспектива:
xt=xtrx; yt=ytrx; zt=ztrx;
kz=z0/abs(z0+dz+zt);
x=x0+xt*kz; x=x*h/w;
y=y0+yt*kz;
* Константы:
$PI=3.14159; $E=2.71828; $PHI=1.618033;
* Текст к показу
$(title), $(title:n32) заголовок.
$(playpos),
$(playpos.2) текущее время трека.
$(playlen) полное время трека.
$(reg00),
$(reg00:1.2) зарезервированные переменные.
reg00=rot*180/$PI;
* Управление мышью
km=1*$PI; kd=1/333;
ks=1; sx=2.9; sy=-0.5;
// перемещение и
сдвиг
mx=km*getkbmouse(1)+ks*sx; reg01=mx;
my=km*getkbmouse(2)+ks*sy;
reg02=my;
// уменьшение или увеличение радиуса
m3=kd*getkbmouse(3);
dz=dz-m3; reg03=m3;
m4=kd*getkbmouse(4); dz=dz+m4; reg04=m4;
x=x+mx;
y=y+my;
* ПРИМЕРЫ
Render / SuperScope
n=2; pi=3.14;
Точка
x=0;
Горизонтальная линия
x=i-0.5;
y=0;
Вертикальная линия
x=0; y=i-0.5;
Наклонная
линия
x=x0+i*dx-0.5; y=y0+i*dy-0.5;
Движущаяся линия
t=t+0.02;
x=sin(t)-i;
Осциллоскоп
x=i*2-1;
y=v;
Синусоида
r=r+2*pi/360;
r=if(below(abs(r),(2*pi)),r,(-2*pi));
x=r/(2*pi); y=sin(r);
n=360; pi=acos(-1);
Окружность polar
x=r*cos(i*pi*2); x=x*h/w; y=r*sin(i*pi*2);
Окружность cartesian [х*x+у*y=r*r]
x=sqrt(r*r-y*y); x=x*h/w;
y=y0+i*r;
Круговая спираль
n=33;
r=0.9;
t=t+0.0001;
rf=i*r; fi=(t+i*pi*4)*14;
x=rf*cos(fi); x=x*h/w;
y=rf*sin(fi);
n=999; r=0.9; px=1;
Круг
px=-px; x=px*sqrt(r*r-y*y); x=x*h/w;
y=(2*i-1)*r;
Квадрат
px=-px; x=px*r; x=x*h/w;
y=(2*i-1)*r;
Треугольник
px=-px; x=r*px*i; x=x*h/w;
y=(2*i-1)*r;
[WinAMP 5]
++ Комментарии:
// using the doubleslash comments until the end
of the line
/* using the classic C comments
comment a block of text */
++ "Рендеринг изображений" _ texer2.ape
Для обеспечения прозрачности добавить Misc / Set Render Mode перед Texer
II. Режим Additive или Maximum blend. Включить Resizing для изменения
размера.
size=10;
sizex=size; sizey=size;
* ПЛАГИНЫ ЭФФЕКТОВ (APE)
Сообщение "Unknown Render Object" возникает в редакторе, если эффект APE не
загружен или если файл *.ape отсутствует в папке Plugins\avs и должен быть
добавлен. Для активации эффекта требуется перезапуск WinAMP. Установка лишних
эффектов ведёт к нестабильности работы проигрывателя.
Стандартные:
AddBorder.ape - (Add a border to AVS) Бордюр : + Virtual
Effects / AddBorders.
colormap.ape -
convolution.ape
-
fyrewurx.ape - (Firework) Фейерверк : + Render APE /
FyrewurX.
multifilter.ape -
texer.ape
-
texer2.ape - (Texer) Рендерер изображений : +
Render APE / Texer II.
Дополнительные:
AVSGrabber.ape - (AVS Grabber) Захват
AVS видео в файл
AVI.
globmgr.ape -
(Global Variable Manager) Мегабуферизация.
FramerateLimiter.ape - (Framerate
Limiter) Замедление
пресета.
lyrics.ape
- (Lyrics) Лирика.
NegativeStrobe.ape - (Negative Strobe)
Отрицательный строб с переменной
скоростью.
picture2.ape -
(Improved picture renderer) Рендеринг
изображений.
pfavs.ape
- (Video device input in AVS) Перенаправление видеозахвата в
AVS.
RGBfilter.ape - (RGB filter)
Цветные
фильтры.
saver.ape
- (Saver) Захват видео в AVI без сжатия : + Pixelcorps / AVI
output.
ScreenReverse.ape - (Screen Reverse) Разворот
экрана.
slideshow.ape - (Slideshow)
Слайдшоу изображений : + Render APE /
Slideshow.
VfxAviPlayer.ape - (Avi Player)
Проигрыватель : + Virtual Effects /
AviPlayer.
vjcontrol.ape - (VJ
Control) Интерактивное управление : + Misc / VJ Control.
Artificial Life 1.07:
ifs.ape v.1.01 - (IFS) Пятно : + Render APE /
ifs.
flock.ape v.1.03 - (Flock) Стадо : + Render APE / Flock
Off.
conway.ape v.1.03 - (Game of Life) Игра жизни : + Render APE /
Conway's Game of Life.
flame.ape v.1.04 - (Flame) Пламя : +
Render APE / Flame.
Tomylobo:
buffer.ape - Buffer
blend.
eeltrans.ape - Automated
AVSTrans.
normalise.ape - (Normalise pictures
contrast) Нормализация
изображений.
triangle.ape - Triangle
renderer.
* Ссылки