AVS & APE
WinAMP 5.24 (AVS 2.81b)
http://avs.chat.ru/avs.htm
http://avs.chat.ru/avs.zip
http://avs.chat.ru/ape.zip
http://avs.chat.ru/arch.zip
2011-07-07
AVS (Advanced Visualisation Studio) - студия визуализации.
APE (Advanced
Visualisation Studio Plugin Effects) - плагины эффектов.
(Russian)
TROUBLE CHART
Управление звуком и визуализацией находятся на разных консолях.
Запустить avs-файл из Проводника невозможно. Пресеты визуально не представлены.
Открывать пресеты из рабочего окна студии визуализации затруднительно.
Сортировать пресеты по директориям невозможно.
При настройке Шаблона просмотра папки не сортируются по древу, что затрудняет выбор.
Зaпoлнeниe экpaнa пo вepтикaли (в пpoцeнтax): 80 по умолчанию, ничем не обусловлено.
Bыбор видeopeжима по умолчанию в Пapaмeтpах пoлнoэкpaннoгo peжимa не оптимизирован.
Многие из видеорежимов или работают нестабильно, или приводят к системным сбоям.
Переключение вывода окна визуализации на второй монитор не предусмотрено.
Даже "пустые" пресеты дают почти 100% нагрузку на ЦП, обеспечивая fps < 60.
Частота обновления более 30 fps, в принципе не имеет смысла для визуального восприятия.
Редактирование пресетов затруднено, шрифт в редакторе мелкий, размер окон не регулируются.
В начале редактирования все списки эффектов раскрыты, что неудобно для обзора.
Клавиша "del" в редактировании эффектов не задействована.
При вставке Списка эффектов опции Чистить и Смешивание не предустановлены.
Откат действует только с ограничениями. Автосохранение не предусмотрено.
Возможен только один и только одномерный массив.
Позиционирование вывода литер в эффекте Text не программируется.
Перемещение текста через Dynamic Movement даёт большую нагрузку на процессор.
AVSMmP [AVS Multimedia Player]
А. СТУДИЯ.
1. Отладка студии AVS WinAMP. Нагрузка на процессор. Bидeopeжимы. Пoлнoэкpaнный peжим.
2. Новая AVS студия. Совместимость с другими проигрывателями. Второй монитор. Световой клавир.
3. Новый AVS проигрыватель. Регистрация *.avs. Проводник и браузер пресетов. Кросс-платформерность.
Б. ЗВУК.
1. Отладка опции beatdetection AVS WinAMP. Регулировка чувствительности.
2. Адаптивный алгоритм rhythmdetection. Стерео-звук. Микшерный и многоканальный вход.
3. Общие алгоритмы и техническое обеспечение визуализации "живого" звука.
В. ДВИЖЕНИЕ.
1. Алгоритм визуализации движения танцора.
2. Система слежения с веб-камеры. Алгоритм обработки видеосигнала.
3. Датчики и технические устройства детекции движения на сцене.
RESERVED VARIABLE (ЗАРЕЗЕРВИРОВАННЫЕ ПЕРЕМЕННЫЕ) :
n ; i ; v ; b ; beat ; w ; h ;
x ; y ; d ; r ; alpha ;
bi ; isBeat ;
isLBeat ; enabled ;
skip ; drawmode ; linesize ; sizex ; sizey ;
red ;
green ; blue ;
reg00..reg99
RESERVED KEY (ЗАРЕЗЕРВИРОВАННЫЕ КЛАВИШИ) :
Z .. Предыдущий
X ..
Воспроизведение
C ..
Пауза
V .. Стоп
B ..
Следующий
Del .. Удалить трек из плейлиста
Ins ..
Открыть папку
L .. Открыть файл
J .. Bыбop
фaйлa Искать текст (Jump to file)
Y .. Предыдущая
визуализация
U .. Следующая визуализация
F .. Счeтчик чaстоты
(Fullscreen FPS on\off)
R .. Cлучaйнoe пepeключeниe (Random presets FPS
on\off)
K .. Выйти из Fullscreen
q w e R t Y U i o p [
]
a s d F g h J K L ; '
Z X C V B n m , . /
KEYBOARD KEY (КЛАВИШНЫЕ КЛЮЧИ) :
Esc{27} Print Screen{44} Scroll Lock{145}
Pause{}
`{192}
... -{189}
={187} \{220}
BkSpase{8}
Tab{9} q{81} w{87} e{69}
R(82) t{84} Y(89) U(85) i{73} o{79} p{80} [{219} ]{221}
Enter{13}
Caps Lock{20} a{65} s{83} d{68} F(70) g{71} h{72} J(74) K(75)
L(76) ;{186}
'{222}
Shift{160} Z(90) X(88) C(67) V(86) B(66) n{78}
m{77}
,{188} .{190} /{191} Shift{161}
LCtrl{162} LWin{91}
LAlt{164} Spase{32} RAlt{165}
RWin{92} Menu{93} RCtrl{163}
INSERT(45)
Home{36} Page Up{33}
DELETE(46)
End{35} Page Down{34}
HOT KEY (ГОРЯЧИЕ КЛАВИШИ) :
Ctrl+J .. Перейти к заданному времени (Jump)
Ctrl+L .. Откpыть URL (Open
location)
linein:// .. Линейный вход
Alt+K
.. Настроить визуализацию
Ctrl+Shift+K .. Запустить
визуализация
Ctrl+P .. Настройки
Alt+F4 .. Выход
Записать пресет на выбранную клавишу (!) :
Ctrl+[клавиша]
на клавиши 1..0 и F1..F12
Ctrl+Shift+[клавиша] на клавиши Shift+
1..0
ЧАСТО ИСПОЛЬЗУЕМЫЕ ВЫРАЖЕНИЯ
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)
ТЕКСТ К ПОКАЗУ
$(title), $(title:n32) заголовок.
$(playpos), $(playpos.2) текущее время
трека.
$(playlen) полное время трека.
$(reg00), $(reg00:1.2)
зарезервированные переменные.
reg00=rot*180/$PI
КОНСТАНТЫ
$PI=3.14159; // число "Пи"
pi=3.14; pi=acos(-1);
pi=$PI;
piw=2*$PI; deg=180/$PI;
$E=2.71828;
$PHI=1.618033; // золотое сечение
(1+v5)/2
ПОЛЕЗНЫЕ ВЫРАЖЕНИЯ
ОСВЕЩЕНИЕ
light=1+z; red=light*(2*i-1); green=light*(1-i);
blue=0;
light=(1+z)/2;
red=light; green=light;
blue=light;
red=0; green=light; blue=0;
light = if( below(z,0) ,
(1-i) , (1-i*2) );
light = if( below(z,0) , light/2 , light );
red=light*(i); green=light*(i);
blue=light*(i);
red=light*(1.1-i); green=light*(1.1-i);
blue=light*(1.1-i);
ГРАДАЦИЯ ЯРКОСТИ
red=(1.1-i); green=(1.1-i); blue=(1.1-i); // по
убывающей от 100 до 10%
red=(i+0.1); green=(i+0.1); blue=(i+0.1); // по
нарастающей от 10 до 100%
red=(i+0.1); green=0;
blue=0; // красный
red=(i+0.1);
green=(i+0.1); blue=0; // желтый
red=0; green=(i+0.1);
blue=0; // зеленый
red=0;
green=(i+0.1); blue=(i+0.1); // голубой
red=0; green=0;
blue=(i+0.1); // синий
red=(i+0.1);
green=0; blue=(i+0.1); // розовый
red=1+y; green=1-y;
blue=0; // от зелёного до
красного
ТОЛЩИНА ЛИНИИ
linesize=3; // (0..255)
ПРЯМАЯ ЛИНЕЙНАЯ ПЕРСПЕКТИВА (LINEAR PERSPECTIVE)
lines=1/(1-z/2);
x=x*lines; y=y*lines;
sizex=lines; sizey=lines;
ПРОПОРЦИИ ЭКРАНА
x=x*h/w;
РАДИАНЫ в ГРАДУСЫ
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);
ФРЕЙМРЕЙТ
FPS
(кадр)
gt1=gettime(0)-gt2;
fps=floor(1/gt1);
fps=if(below(fps,1),1,fps);
gt2=gettime(0);
reg94=fps;
ПЕРЕКЛЮЧАТЕЛЬ
switch=1;
skip=equal(switch,1);
switch=-switch;
КНОПКА-ТУМБЛЕР
km=0;
prev=push; push=getkbmouse(77);
km=if(equal((push-prev),1),(1-km),km);
// Use to Operate: M {77} -> mouse
activation
pr77=ph77; ph77=getkbmouse(77);
kms=if(equal((ph77-pr77),1),(1-kms),kms);
// Use to Operate: S {83} ->
skip activation
pr83=ph83; ph83=getkbmouse(83);
ksk=if(equal((ph83-pr83),1),(1-ksk),ksk);
ИЗМЕНЕНИЕ РАЗМЕРА
m3=kd*getkbmouse(3);
z0=z0-m3;
m4=kd*getkbmouse(4); z0=z0+m4;
reg00=z0;
ЕСЛИ
reg00 = if( band( equal(kf,0) , equal(kp,1) ) , x ,
reg00);
php = if( band(below(abs(x-xp),0.009),below(abs(y-yp),0.009)) , phi ,
php);
ОТЛАДКА (DEBUGGING)
x=2*i-1; y= z ;
ВРАЩЕНИЕ
km=1; kr=1-km; piw=2*$PI;
xn=-getkbmouse(2)*km; yn=getkbmouse(1)*km;
omega = (atan2(gy,gx))*km + (omega+0.1)*kr;
fi =
(piw*sqrt(gx*gx+gy*gy))*km + (fi+0.1)*kr;
МЫШЬ
getkbmouse(which_parm) = returns information about the location and
state of the keyboard or mouse
which_parm = 1: mouse X
position (-1..1 is onscreen)
which_parm = 2: mouse Y
position (-1..1 is onscreen)
which_parm = 3: mouse left
button state (0 up, 1 down)
which_parm = 4: mouse right
button state (0 up, 1 down)
which_parm = 5: mouse middle
button state (0 up, 1 down)
which_parm > 5:
(GetAsyncKeyState(which_parm)&0x8000)?1:0
km=1; kd=1/33;
gx=km*getkbmouse(1); gy=km*getkbmouse(2);
// мышь удерживает вектор нормали
gx=km*getkbmouse(2);
gy=-km*getkbmouse(1); // мышь указывает плоскость
поворота
gr=sqrt(gx*gx+gy*gy); gamma=atan2(gy,gx);
gz=sqrt(1-gr*gr); gz=sqrt(1-(gx*gx+gy*gy));
gz=if(
above((gx*gx+gy*gy),1), 0, sqrt(1-(gx*gx+gy*gy))
);
gz=gz+kd*(getkbmouse(3)-getkbmouse(4));
reg01=gx; reg02=gy;
reg03=gz; reg04=gr;
xn = km*getkbmouse(1); yn = km*getkbmouse(2);
zn = if(
above((xn*xn+yn*yn),1), 0, sqrt(1-(xn*xn+yn*yn)) );
СПИНЕР
switch=1;
gr1=if(equal(switch,+1),gr,gr1);
gr2=if(equal(switch,-1),gr,gr2);
spin=if(equal(switch,-1),spin+abs(gr2-gr1),spin);
switch=-switch;
МАССИВ
megabuf(index) = can be used to get or set an item from the 1 million
item temp buffer
to get, use:
val=megabuf(index);
to set, use:
assign(megabuf(index),val);
gmegabuf(index) = can be used to get or set
an item from the global 1 million item buffer
to get,
use: val=gmegabuf(index);
to set,
use: assign(gmegabuf(index),val);
Локальный массив
k=0;
k=k+1;
assign(megabuf(k),i);
ik=megabuf(k);
Глобальный
массив
ki=0;
ki=ki+1;
// Ввод
данных
assign(gmegabuf(1*n+ki),x);
assign(gmegabuf(2*n+ki),y);
assign(gmegabuf(3*n+ki),z);
//
Извлечение
данных
x=gmegabuf(1*n+ki);
y=gmegabuf(2*n+ki);
z=gmegabuf(3*n+ki);
ЦИКЛ
loop(count, statement) = executes <statement> <count>
times. count is evaluated once and clamped
to 0..4096.
best used with exec2() and exec3() and assign(). Note that
the return value of loop() is undefined and should not be used.
n=4096; k=1;
loop(n, assign(k,k+1) );
loop(n, assign(megabuf(k),k)+
assign(k,k+1) ); reg00=megabuf(4096);
loop(n, exec2( assign(megabuf(k),k),
assign(k,k+1) )); // два выражения в цикле
loop(n, megabuf(k)=k; k=k+1; ); //
(?)
k=0;
loop(n,
assign(x2,x1+dx)+
assign(y2,y1+dy)+
assign(z2,z1+dx)+
assign(k,k+1)
);
**
ПРИМЕРЫ (EXAMPLES)
Render /
SuperScope
Точка
x=0;
ЛИНИЯ (LINE)
Render
/ SuperScope
n=2; pi=acos(-1);
Горизонтальная
линия
x=i-0.5; y=0;
Вертикальная линия
x=0;
y=i-0.5;
Наклонная линия
x=x0+i*dx-0.5; y=y0+i*dy-0.5;
Отрезок (x1,y1),(x2,y2)
x1=-1.0; y1=-1.0; x2=0.9;
y2=0.9;
x=x1+i*(x2-x1); y=y1+i*(y2-y1);
Вращающаяся
линия
x=i*sin(fi); y=i*cos(fi);
Движущаяся линия
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=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);
СФЕРА (SPHERE)
n=3600; pi=$PI; dfi=2*pi/n*36; r=0.87;
fi=0;
fi=fi+dfi;
z=(i*2-1)*r; x=sqrt(r*r-z*z)*cos(fi); y=sqrt(r*r-z*z)*sin(fi);
ОКРУЖНОСТЬ (CIRCUMFERENCE)
Окружность в полярных
координатах (polar coordinates):
n=360; pi=acos(-1); r=0.99;
x=r*cos(i*2*pi); y=r*sin(i*2*pi); z=-0.0;
x=x*h/w;
Окружность в декартовых координатах (cartesian coordinates)
[х*x+у*y=r*r]:
x=sqrt(r*r-y*y); x=x*h/w; y=y0+i*r;
КРУГЛАЯ ПОВЕРХНОСТЬ (SOLID CIRCLE)
Круг сплошной полярный
Спираль
Misc / Set render mode
Peжим cмeшивaния: Maximum
Blend
Шиpинa линии в пикceлax: 9
Render / SuperScope
n=444;
pi=acos(-1); r=0.4;
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);
Круг сплошной полярный
Кольцо:
Render / SuperScope
n=333;
pi=acos(-1);
linesize=3;
r=i*pi*2;
d=if(above(cos(r*(n-1)/2),0),r1,r2);
x=sin(r)*d;
x=x*h/w;
y=cos(r)*d;
Круг сплошной декартовый
Зигзаг:
Render / SuperScope
n=444; rr=0.4;
px=1;
px=-px;
x=px*sqrt(rr*rr-y*y); x=x*h/w;
y=(2*i-1)*rr;
Круг сплошной вращения Dynamic Movement
Градиент:
Render / SuperScope
n=99;
x=0; y=-i;
red=(1-i);
green=(1-i); blue=(1-i);
Trans / Movement
r=0;
Trans /
Dynamic Movement
dr=1/0.4;
x=x*dr; y=y*dr;
Круг сплошной
вращения Movement Градиент многоцветный:
Render /
SuperScope
n=800;
drawmode=1; linesize=1;
y=-i;
x=0;
red=cos(y*$pi*2+$pi*0.5+$pi); green=cos(y*$pi*2+$pi);
blue=cos(y*$pi*2-$pi*0.5+$pi);
Trans /
Movement
r=0;
Круг сплошной Texer изображения:
Misc /
Set render mode
Peжим cмeшивaния: Maximum Blend
Шиpинa линии в пикceлax:
9
Render / Texer II
n=1; size=3;
sizex=size;
sizey=size;
ТРЕУГОЛЬНИК (TRIANGLE)
Треугольник сплошной
Зигзаг:
Render / SuperScope
n=333; rr=0.4;
px=-px; x=rr*px*i;
x=x*h/w; y=(2*i-1)*rr;
Треугольник сплошной Зигзаг
функция:
Render / SuperScope
n=666; rr=0.4;
x=i*(i*n%2*2-1)*rr;
y=(2*i-1)*rr;
КВАДРАТ (SQUARE)
Квадрат сплошной Зигзаг:
Render
/ SuperScope
n=333; rr=0.4; px=1;
px=-px; x=px*rr; x=x*h/w;
y=(2*i-1)*rr;
ПРЯМОУГОЛЬНИК (RECTANGLE)
Прямоугольник sx=0.5;
sy=0.5;
x=sx*(+equal(i,0)-equal(i,0.25)-equal(i,0.5)+equal(i,0.75)+equal(i,1));
y=sy*(+equal(i,0)+equal(i,0.25)-equal(i,0.5)-equal(i,0.75)+equal(i,1));
z=0;
Прямоугольник n=5;
ki=1;
x=sx*(+equal(ki,1)-equal(ki,2)-equal(ki,3)+equal(ki,4)+equal(ki,5));
y=sy*(+equal(ki,1)+equal(ki,2)-equal(ki,3)-equal(ki,4)+equal(ki,5));
z=0;
ki=ki+1;
xr=x;
yr=y; zr=z;
xp=x; yp=y; zp=z;
Прямоугольник простейший LineSize:
Render / SuperScope
n=2;
lx=0.4; ly=0.2; // ly=lx;
linesize=ly*h/1.5; // фрейм
x=i*lx; y=0;
ПРЯМОУГОЛЬНАЯ ПОВЕРХНОСТЬ (SOLID RECTANGLE)
Прямоугольник сплошной Movement:
Trans /
Movement
Прямоугольник контурный по точкам:
Render /
SuperScope
n=5; x0=0.0; y0=0.0; lx=0.4; ly=0.2;
xt=lx*(-equal(i,0)+equal(i,0.25)+equal(i,0.5)-equal(i,0.75)-equal(i,1));
yt=ly*(equal(i,0)+equal(i,0.25)-equal(i,0.5)-equal(i,0.75)+equal(i,1));
x=x0+xt;
x=x*h/w; y=y0+yt;
red=(i); green=(i); blue=(i);
n=5; dn=1/(n-1);
x0=0.0; y0=0.0; lx=0.4; ly=0.2;
xt=lx*(-equal(i,0*dn)-equal(i,1*dn)+equal(i,2*dn)+equal(i,3*dn)-equal(i,4*dn));
yt=ly*(-equal(i,0*dn)+equal(i,1*dn)+equal(i,2*dn)-equal(i,3*dn)-equal(i,4*dn));
n=5;
dn=1/(n-1); x0=0.0; y0=0.0; lx=0.4; ly=0.2;
xt=lx*sign(sin(i*2*$PI));
yt=ly*sign(cos(i*2*$PI));
Прямоугольник
сплошной Зигзаг:
Render / SuperScope
n=640; lx=0.4; ly=0.2;
px=1;
x=px*lx; x=x*h/w;
y=(2*i-1)*ly;
red=(i+0.1); green=(i+0.1);
blue=(i+0.1);
px=-px;
Прямоугольник сплошной с параллельной
штриховкой:
Render / SuperScope
n=640; lx=2.0/2; ly=1.0/2; py=1; //
ly=lx;
x=(1-2*i)*lx; x=x*h/w;
y=py*ly;
x=if(above(py,0),x,xpy);
xpy=x;
skip=equal(py,1);
py=-py;
КУБ КАРКАС (CUBE FRAMEWORK)
n=24; switch=1;
ki=0;
skip=equal(switch,1);
x=rc*(equal(ki,0)+equal(ki,1)+equal(ki,2)+equal(ki,3)-equal(ki,4)-equal(ki,5)-equal(ki,6)-equal(ki,7)+equal(ki,8)-equal(ki,9)+equal(ki,10)-equal(ki,11)+equal(ki,12)-equal(ki,13)+equal(ki,14)-equal(ki,15)+equal(ki,16)+equal(ki,17)-equal(ki,18)-equal(ki,19)-equal(ki,20)-equal(ki,21)+equal(ki,22)+equal(ki,23));
y=rc*(equal(ki,0)+equal(ki,1)-equal(ki,2)-equal(ki,3)-equal(ki,4)-equal(ki,5)+equal(ki,6)+equal(ki,7)-equal(ki,8)-equal(ki,9)+equal(ki,10)+equal(ki,11)+equal(ki,12)+equal(ki,13)-equal(ki,14)-equal(ki,15)+equal(ki,16)-equal(ki,17)-equal(ki,18)+equal(ki,19)+equal(ki,20)-equal(ki,21)+equal(ki,22)-equal(ki,23));
z=rc*(equal(ki,0)-equal(ki,1)+equal(ki,2)-equal(ki,3)+equal(ki,4)-equal(ki,5)+equal(ki,6)-equal(ki,7)+equal(ki,8)+equal(ki,9)+equal(ki,10)+equal(ki,11)-equal(ki,12)-equal(ki,13)-equal(ki,14)-equal(ki,15)+equal(ki,16)+equal(ki,17)+equal(ki,18)+equal(ki,19)-equal(ki,20)-equal(ki,21)-equal(ki,22)-equal(ki,23));
ki=ki+1; switch=-switch;
КУБ (CUBE)
n=17; dx=0.4; dy=0.4; dz=0.4; xx0=0.0; yy0=0.0;
zz0=-2.0;
ki=0;
ki=ki+1;
xt=dx*(-equal(ki,1)-equal(ki,2)+equal(ki,3)+equal(ki,4)-equal(ki,5)-equal(ki,6)-equal(ki,7)+equal(ki,8)+equal(ki,9)-equal(ki,10)-equal(ki,11)-equal(ki,12)+equal(ki,13)+equal(ki,14)+equal(ki,15)+equal(ki,16)+equal(ki,17));
yt=dy*(-equal(ki,1)-equal(ki,2)-equal(ki,3)-equal(ki,4)-equal(ki,5)+equal(ki,6)+equal(ki,7)+equal(ki,8)+equal(ki,9)+equal(ki,10)+equal(ki,11)-equal(ki,12)-equal(ki,13)-equal(ki,14)+equal(ki,15)+equal(ki,16)-equal(ki,17));
zt=dz*(-equal(ki,1)+equal(ki,2)+equal(ki,3)-equal(ki,4)-equal(ki,5)-equal(ki,6)+equal(ki,7)+equal(ki,8)-equal(ki,9)-equal(ki,10)+equal(ki,11)+equal(ki,12)+equal(ki,13)-equal(ki,14)-equal(ki,15)+equal(ki,16)+equal(ki,17));
n=10; dn=1/(n-1); dx=0.4; dy=0.4; dz=0.4; xx0=0.0; yy0=0.0;
zz0=-2.0;
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=dz*(+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));
red=(1.1-i);
green=(1.1-i); blue=(1.1-i);
ОБЪЕКТЫ ИЗ ТОЧЕК
// ПРЯМОУГОЛЬНИК (RECTANGLE)
j=30; n=j*j; r=0.7; dj=2*r/(j-1);
jx=0;
jy=0;
x=-r+jx*dj; y=-r+jy*dj; z=0;
jy=if(equal(jx,(j-1)), (jy+1), jy );
jx=if(equal(jx,(j-1)), 0, (jx+1) );
// КУБ (CUBE)
j=11; n=j*j*j; r=0.4; dj=2*r/(j-1);
jx=0; jy=0;
jz=0;
x=-r+jx*dj; y=-r+jy*dj; z=-r+jz*dj;
jy=if(equal(jx,(j-1)), (jy+1),
jy );
jx=if(equal(jx,(j-1)), 0, (jx+1) );
jz=if(equal(jy,(j-0)), (jz+1),
jz );
jy=if(equal(jy,(j-0) ), 0, jy );
**
2D ROTATION MATRIX (МАТРИЦЫ ВРАЩЕНИЯ)
// 2D ROTATION (2D
ВРАЩЕНИЕ)
x = x0 + xt*cos(fi) - yt*sin(fi); // [ + yt ]
y = y0 +
xt*sin(fi) + yt*cos(fi); // [ - yt ]
tx=tx+0.01; ty=ty+0.02; tz=tz+0.03;
xt=x; yt=y; zt=z;
// 2D ROTATION
MATRIX (OZ)
x=xt*cos(tz)-yt*sin(tz); z=zt;
y=xt*sin(tz)+yt*cos(tz);
// 2D ROTATION MATRIX
(OY)
x=xt*cos(ty)-zt*sin(ty); y=yt; z=xt*sin(ty)+zt*cos(ty);
// 2D
ROTATION MATRIX (OX)
x=xt; y=yt*cos(tx)-zt*sin(tx);
z=yt*sin(tx)+zt*cos(tx);
// 2D pseudo 3D
xt=x; yt=y; zt=z; x=xt*cos(fi)-zt*sin(fi);
z=xt*sin(fi)+zt*cos(fi); y=yt;
xt=x; yt=y; zt=z;
x=xt*cos(omega)-yt*sin(omega); y=xt*sin(omega)+yt*cos(omega); z=zt;
Прямоугольник сплошной с вращением:
n=640; x0=0.0; y0=0.0;
lx=2.0/2; ly=1.0/2; py=1; // ly=lx;
rotz=rotz+0.01; costz=cos(rotz);
sintz=sin(rotz); // фрейм
xt=(1-2*i)*lx;
yt=py*ly;
xt=if(above(py,0),xt,xpy); xpy=xt; skip=equal(py,1); py=-py;
x=x0+xt*costz-yt*sintz; x=x*h/w; y=y0+xt*sinrz+yt*costz;
2D
матрица вращения с абсолютным вращением:
x0=0.3; y0=0.3;
rotz=rotz+0.010;
costz=cos(rotz); sintz=sin(rotz); // фрейм
x=x0+xt*costz-yt*sintz;
x=x*h/w;
y=y0+xt*sinrz+yt*costz;
2D матрица вращения с
относительным вращением:
n=222; x0=0.3; y0=0.3; romega=sqrt(x0*x0+y0*y0);
lx=0.4; ly=0.2; px=1;
omegaz=omegaz-0.010;
x0=romega*cos(omegaz);
y0=romega*sin(omegaz);
rotz=rotz+0.010; costz=cos(rotz);
sintz=sin(rotz);
x=x0+xt*costz-yt*sintz;
x=x*h/w;
y=y0+xt*sinrz+yt*costz;
3D ROTATION EULER (ПОВОРОТ ПРЕДМЕТА В ПРОСТРАНСТВЕ в Эйлеровых углах)
yty=yt; zty=zt*cos(ty)-xt*sin(ty); xty=zt*sin(ty)+xt*cos(ty); xt=xty;
yt=yty; zt=zty;
xtx=xt; ytx=yt*cos(tx)-zt*sin(tx);
ztx=yt*sin(tx)+zt*cos(tx); xt=xtx; yt=ytx; zt=ztx;
ztz=zt;
xtz=xt*cos(tz)-yt*sin(tz); ytz=xt*sin(tz)+yt*cos(tz); xt=xtz; yt=ytz;
zt=ztz;
// tx=0; ty=0;
xtz=xt*ctz-yt*stz; ytz=xt*stz+yt*ctz; xt=xtz;
yt=ytz;
// ty=0; tz=0;
ytx=yt*ctx-zt*stx; ztx=yt*stx+zt*ctx;
yt=ytx; zt=ztx;
// tx=0; tz=0;
zty=zt*cty-xt*sty;
xty=zt*sty+xt*cty; xt=xty; zt=zty;
[Frame]
tx=tx+kr*0.01; ty=ty+kr*0.02; tz=tz+kr*0.03;
stx=sin(tx); ctx=cos(tx); sty=sin(ty); cty=cos(ty); stz=sin(tz);
ctz=cos(tz);
[Point]
// 3D ROTATION MATRIX (3D МАТРИЦА
ВРАЩЕНИЯ)
xt=x; yt=y; zt=z;
zty=zt*cty-xt*sty; xty=zt*sty+xt*cty;
xt=xty; zt=zty;
ytx=yt*ctx-zt*stx; ztx=yt*stx+zt*ctx; yt=ytx;
zt=ztx;
xtz=xt*ctz-yt*stz; ytz=xt*stz+yt*ctz; xt=xtz; yt=ytz;
x=xt;
y=yt; z=zt;
ПОВОРОТ ПРЕДМЕТА В ПРИРАЩЕНИИ УГЛА
xx0=0.0; yy0=0.0; zz0=-2.0; dx=0.4; dy=0.4; dz=0.4;
rtx=0; rty=0;
gmx1=getkbmouse(1); gmy1=getkbmouse(1);
gmx2=getkbmouse(2);
gmy2=getkbmouse(1);
x0=-1*dx; x1=-1*dx; x2= 1*dx; x3= 1*dx; x4=-1*dx; x5=-1*dx; x6=-1*dx; x7=
1*dx; x8= 1*dx; x9=-1*dx;
y0=-1*dy; y1= 1*dy; y2= 1*dy; y3=-1*dy; y4=-1*dy;
y5=-1*dy; y6= 1*dy; y7= 1*dy; y8=-1*dy; y9=-1*dy;
z0= 1*dz; z1= 1*dz; z2=
1*dz; z3= 1*dz; z4= 1*dz; z5=-1*dz; z6=-1*dz; z7=-1*dz; z8=-1*dz; z9=-1*dz;
even=1;
gmx1=if(equal(even,1),getkbmouse(2),gmx1);
gmx2=if(equal(even,-1),getkbmouse(2),gmx2);
gmx=if(equal(even,-1),(gmx2-gmx1),(gmx1-gmx2));
gmy1=if(equal(even,1),getkbmouse(1),gmy1);
gmy2=if(equal(even,-1),getkbmouse(1),gmy2);
gmy=if(equal(even,-1),(gmy2-gmy1),(gmy1-gmy2));
even=-even;
tx=km*$PI/0.5*gmx; reg01=tx*180/$PI;
ty=-km*$PI/0.5*gmy;
reg02=ty*180/$PI;
//tx=tx+0.00; ty=ty+0.00; tz=tz+0.00;
rtx=rrx+tx;
rty=rry+ty;
rtx=if(above(abs(rrx),(2*$PI)),0,rrx);
rty=if(above(abs(rry),(2*$PI)),0,rry);
xt=equal(i,0*dn)*x0+equal(i,1*dn)*x1+equal(i,2*dn)*x2+equal(i,3*dn)*x3+equal(i,4*dn)*x4+equal(i,5*dn)*x5+equal(i,6*dn)*x6+equal(i,7*dn)*x7+equal(i,8*dn)*x8+equal(i,9*dn)*x9;
yt=equal(i,0*dn)*y0+equal(i,1*dn)*y1+equal(i,2*dn)*y2+equal(i,3*dn)*y3+equal(i,4*dn)*y4+equal(i,5*dn)*y5+equal(i,6*dn)*y6+equal(i,7*dn)*y7+equal(i,8*dn)*y8+equal(i,9*dn)*y9;
zt=equal(i,0*dn)*z0+equal(i,1*dn)*z1+equal(i,2*dn)*z2+equal(i,3*dn)*z3+equal(i,4*dn)*z4+equal(i,5*dn)*z5+equal(i,6*dn)*z6+equal(i,7*dn)*z7+equal(i,8*dn)*z8+equal(i,9*dn)*z9;
yty=yt; zty=zt*cty-xt*sty; xty=zt*sty+xt*cty; xt=xty; yt=yty;
zt=zty;
xtx=xt; ytx=yt*ctx-zt*stx; ztx=yt*stx+zt*ctx; xt=xtx; yt=ytx;
zt=ztx;
ztz=zt; xtz=xt*ctz-yt*stz; ytz=xt*stz+yt*ctz; xt=xtz; yt=ytz;
zt=ztz;
x0=if(equal(i,0*dn),xt,x0); x1=if(equal(i,1*dn),xt,x1);
x2=if(equal(i,2*dn),xt,x2); x3=if(equal(i,3*dn),xt,x3);
x4=if(equal(i,4*dn),xt,x4); x5=if(equal(i,5*dn),xt,x5);
x6=if(equal(i,6*dn),xt,x6); x7=if(equal(i,7*dn),xt,x7);
x8=if(equal(i,8*dn),xt,x8);
x9=if(equal(i,9*dn),xt,x9);
y0=if(equal(i,0*dn),yt,y0);
y1=if(equal(i,1*dn),yt,y1); y2=if(equal(i,2*dn),yt,y2);
y3=if(equal(i,3*dn),yt,y3); y4=if(equal(i,4*dn),yt,y4);
y5=if(equal(i,5*dn),yt,y5); y6=if(equal(i,6*dn),yt,y6);
y7=if(equal(i,7*dn),yt,y7); y8=if(equal(i,8*dn),yt,y8);
y9=if(equal(i,9*dn),yt,y9);
z0=if(equal(i,0*dn),zt,z0);
z1=if(equal(i,1*dn),zt,z1); z2=if(equal(i,2*dn),zt,z2);
z3=if(equal(i,3*dn),zt,z3); z4=if(equal(i,4*dn),zt,z4);
z5=if(equal(i,5*dn),zt,z5); z6=if(equal(i,6*dn),zt,z6);
z7=if(equal(i,7*dn),zt,z7); z8=if(equal(i,8*dn),zt,z8);
z9=if(equal(i,9*dn),zt,z9);
**
НАСТРОЙКИ
Окно визуализации для Разрешения экрана на втором мониторе
(TEST):
800x600 (32 bit) - 30 FPS @ 416x316
640x480 (32 bit) -
60 FPS @ 328x244
Полноэкранный режим (Fullscreen Settings)
P4-1300 1024х768х32 :
640x480:32BPP
P2-366 1024х768х32 :
320х240:32BPP
Удвoeниe пикceлa: Да
Высота экрана в
процентах для рендеринга: 100
Ожидание восстановления:
Нет
Клик по страницы (медленно, гладко): Нет
Быстрое
программное bpp преобразование: Да !?
FPS
Строка слева
внизу окна редактора показывает текущую FPS - частоту кадров, изменяющуюся в
зависимости от загруженности процессора, и размер окна визуализации в пикселах
(656х488). Оптимальное значение FPS составляет приблизительно 60 FPS (Render /
Dot Plane для проверки). Если значение существенно меньше, то
пресет
или неправильно составлен,
или перегружен
эффектами,
или нарушены настройки AVS по умолчанию,
или не
хватает мощности процессора.
Настройки модуля (меню Settings)
Display - настройки
экрана. Здесь можно отметить флажок No minimize on WinAmp minimize, запрещающий
сворачивать экран визуализации при сворачивании
проигрывателя.
Fullscreen - настройки полноэкранного
режима.
Presets/Hotkeys - настройка "горячих" клавиш, которые могут
запускать тот или иной готовый модуль визуализации. При установке флажка
Randomly switch presets модули визуализации будут случайным образом меняться
через заданное время.
Beat Detection - настройки детектора импульсов
ударных инструментов.
Направление векторов в 3D пространстве (ноль
в центре окна визуализации):
x - вправо по горизонтали;
y -
вниз по вертикали;
z - от наблюдателя за экран.
Комментарии:
// using the doubleslash comments until the
end of the line
/* using the classic C comments
comment a block of text */
РЕДАКТОР 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.
Разделителем между
формулами служит точка с запятой.
СПИСОК AVS ФУНКЦИЙ
rand(var) Возвращает
случайное число между 0 и
var
Операторы
Преобразовывают две величины в
целое:
% performs division, returns remainder
| returns
bitwise OR of both values
& returns bitwise AND of both
values
Функции (Functions available from
code):
sin(value) = returns the sine of the radian angle
'value'
cos(value) = returns the cosine of the radian angle
'value'
tan(value) = returns the tangent of the radian angle
'value'
sqr(value) = returns the square of 'value'
sqrt(value)
= returns the square root of 'value'
invsqrt(value) = returns the
reciprocal of the square root of 'value'
(1/sqrt(value))
(uses a fast approximation, may not always
= 1/sqrt(value) :)
pow(value,value2) = returns 'value' to the power of
'value2'
exp(value) = returns e to the power of
'value'
log(value) = returns the log in base e of
'value'
log10(value) = returns the log in base 10 of
'value'
min(value,value2) = returns the smallest of 'value' and
'value2'
max(var,var2) = returns the greatest of 'value' and
'value2'
sigmoid(value,value2) = returns sigmoid function value of
x='value' ('value2'=constraint)
rand(value) = returns a random integer
between 0 and 'value'
band(value,value2) = returns a boolean AND of
'value' and 'value2'
bor(value,value2) = returns a boolean OR of
'value' and 'value2'
bnot(value) = returns a boolean NOT of
'value'
if(condition,valtrue,valfalse) = returns 'valtrue' if
'condition' is nonzero, returns 'valfalse' otherwise.
new
in AVS 2.8+: only one of valtrue/valfalse is evaluated, depending on
condition
assign(dest, source) = if 'dest' is a variable, assigns the
value of 'source' to it.
returns the value of
'source'.
a little trick: assign(if(v,a,b),1.0); is like
if V is true, a=1.0, otherwise b=1.0. :)
exec2(parm1, parm2) =
evaluates parm1, then parm2, and returns the value of
parm2.
equal(value,value2) = returns 1.0 if 'value' is equal to
'value2', otherwise returns 0.0
above(value,value2) больше = returns 1.0 if
'value' is greater than 'value2', otherwise returns 0.0
below(value,value2)
меньше = returns 1.0 if 'value' is less than 'value2', otherwise returns
0.0
gettime(start_time) = returns time in seconds since start_time
(start_time can be 0 for time since boot)
(start_time can
be -1.0 for current play time in seconds
(start_time can
be -2.0 for current play length in seconds
abs(value) = returns the absolute value of 'value'
sign(value)
= returns the sign of 'value' (-1.0 or 1.0, or 0.0 or -0.0 for 0.0 or -0.0);
floor(value) = returns the largest integer less than or equal to
'value'
ceil(value) = returns the smallest integer greater than or
equal to 'value'
abs(0)=0
sign(0)=0
floor(0.1)=0
floor(-0.1)=-1
ceil (0.1)=1 ceil (-0.1)= 0
getspec(band,width,channel) = returns spectrum data centered at 'band',
(0..1), sampled 'width' (0..1) wide.
'channel' can be:
0=center, 1=left, 2=right. return value is (0..1)
Звуковая функция "Спектр" (Spectrum) getspec(band,width,channel) =
возвращает (0..1) величину спектральных составляющих, и изменяется от 0 (частоты
не используются) до 1 (громкие частоты).
band (0..1) устанавливает
положение центральной точки, вокруг которой будет вычисляться интенсивность
спектральной составляющей, на спектральной полосе от 0 (низкие частоты) до 1
(высокие частоты).
width (0..1) устанавливает ширину интервала вокруг
центральной точки, в котором будет вычисляться спектр.
channel
(1,2,0) указывает из какого канала эти данные будут взяты: 1 для левого, 2 для
правого, 0 для среднего арифметического обоих каналов.
getosc(band,width,channel) = returns waveform data centered at 'band',
(0..1), sampled 'width' (0..1) wide.
'channel' can be:
0=center, 1=left, 2=right. return value is (-1..1)
Звуковая функция "Колебания" (Oscilloscope) getosc(band,width,channel)
= возвращает (-1..1) амплитуду вибрации звука, развёрнутую на шкале времени, и
изменяется от -1 до 1 (громко), через 0 (тишина).
Функции всегда
возвращают одну и ту же величину ЗА ОДИН ФРЕЙМ (даже в разных эффектах), поэтому
полезны для синхронизации различных динамических
эффектов.
Приблизительное соотношение
[getspec(0.5,0.5,0)-1] и
[getspec(i,2,0)-1] соответствуют устреднённому v по всему диапазону спектра
getspec(i,0,0)-1 == v для режима Исходные данные Спектр
(spectrum).
getosc(i,0,0) == v для режима Исходные
данные Волна (waveform).
asin(value) = returns the arcsine (in radians) of
'value'
acos(value) = returns the arccosine (in radians) of
'value'
atan(value) = returns the arctangent (in radians) of
'value'
atan2(value,value2) = returns the arctangent (in radians) of
'value'/'value2'
При вычислении fi=acos(x) [|x|<1] можно учесть, что сумма арксинуса и
арккосинуса равна прямому углу:
fi = pi/2 -
atan((x/r)/sqrt(1-sqr(x/r)));
Функция ATan2(Y,X) проверяет знак X и Y, чтобы поместить угол в
правильный квадрант, и вычисляет значение угла в диапазоне между -PI и +PI.
Также она обрабатывает случаи, когда X равен нулю, чтобы избежать ошибок деления
на ноль. ATan2 возвращает разный результат, в зависимости от знака
ноля.
atan2(0,0) = 0.
Superscope tutorial goes here
But for now, here is the old
text:
You can specify expressions that run on Init, Frame, and on
Beat.
'n' specifies the number of points to render (set this in Init,
Beat, or Frame).
For the 'Per Point' expression (which happens 'n' times per
frame), use:
'x' and 'y' are the coordinates to draw to
(-1..1)
'i' is the position of the scope (0..1)
'v' is the
value at that point (-1..1).
'b' is 1 if beat, 0 if not.
'red', 'green' and 'blue' are all (0..1) and can be modified
'linesize' can be set from 1.0 to 255.0
'skip' can be set to >0 to
skip drawing the current item
'drawmode' can be set to > 0 for
lines, <= 0 for points
'w' and 'h' are the width and height of the
screen, in pixels.
Anybody want to send me better text to put here?
Please :)
ПЛАГИНЫ ЭФФЕКТОВ (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.
Рендеринг изображений (texer2.ape)
Для
обеспечения прозрачности добавить Misc / Set Render Mode перед Texer II. Режим
Additive или Maximum blend. Включить Resizing для изменения размера.
size=10;
sizex=size; sizey=size;
ССЫЛКИ
http://www.winamp.com/media-player/
[AVS
Visualization presets]
http://www.winamp.com/plugins/browse/11
[Windowed
Plug-ins]
http://www.winamp.com/plugins/browse/1
[Windowed
Plug-ins]
http://www.winamp.com/visualizations/visualizations/1/just-added/page/1
http://www.nullsoft.com/free/avs/
http://forums.winamp.com/forumdisplay.php?s=&forumid=85
http://winamp.slavicusa.com/winamp_up/winamp5x_up.html
http://www.oldversion.com/Winamp.html
http://www.oldapps.com/winamp.php
http://www.visbot.net
http://www.daandirk.nl/avs
Конструкции и устройства цветомузыки
http://winlight.narod.ru/lib/AVS.html
Искусство
цвета
http://www.megagraphix.org/itten.htm
e-mail: duncancenter@mail.ru