index

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

http://avs.chat.ru/snapshots/000.htm
http://avs.chat.ru