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

2013-09-09

AVS (Advanced Visualisation Studio) - студия визуализации.
APE (Advanced Visualisation Studio Plugin Effects) - плагины эффектов.

(Russian)

TROUBLE CHART for WinAMP

Управление звуком и визуализацией находятся на разных окнах. Необходим единый Пульт управления.
Запустить avs-файл из Проводника невозможно. Расширение не опознаётся системой.
Пресеты визуально не представлены. Обзор пресетов не возможен. Миниатюра должна храниться рядом с пресетом.
Открывать пресеты из окна визуализации затруднительно. Выпадающее меню не фиксируется.
Сортировать пресеты по директориям невозможно. Функция "Переместить" отсутствует.
Все служебные файлы находятся в одной директории. Для файлов ape, aph, bmp и т.д. необходимы отдельные папки.
При настройке [Settings-Hotkeys-Directory] папки не объединяются по поддиректориям, что затрудняет выбор.
Зaпoлнeниe экpaнa по умолчанию пo вepтикaли 80% не обусловлено чем-либо.
Bыбор видeopeжима по умолчанию в Пapaмeтpах пoлнoэкpaннoгo peжимa не автоматизирован и не оптимизирован.
Многие из доступных в меню видеорежимов или работают нестабильно, или приводят к системным сбоям.
Переключение вывода окна визуализации на второй монитор вообще не предусмотрено.
Частота обновления более 30 fps, в принципе не имеет смысла для визуального восприятия.
Даже "пустые" пресеты дают почти 100% нагрузку на ЦП, обеспечивая fps < 60.
Редактирование пресетов затруднено, шрифт в редакторе мелкий, размер окон не регулируются.
В начале редактирования (после загрузки пресета) все списки эффектов раскрыты, что неудобно для обзора.
Клавиша "del" в редактировании эффектов не задействована.
При вставке Списка эффектов опции Чистить и Смешивание не предустановлены на Включено.
Откат действует только с ограничениями. Автосохранение не предусмотрено.
Возможен только один и только одномерный массив.
Позиционирование вывода литер в эффекте Text не программируется в коде.
Перемещение текста через Dynamic Movement даёт большую нагрузку на процессор.

TROUBLE CHART for AVS_Playlister

миниатюры должны храниться рядом с файлом и удаляться вместе с файлом
клавиатура и горячие клавиши в полноэкранном режиме не работают
после перемещения миниатюры в remix, панель выбора сдвигается на последнюю страницу (f12)
drug-and-drop перемещение пресетов не предусмотрено
желательно наличие кнопки remix для переброса drug-and-drop
перемещение и удаление пресетов во время воспроизведения не возможно
групповое перемещение пресетов не предусмотрено, выделить сразу несколько пресетов нельзя
файлы, выбранные в программе с клавиатуры, после редактирования не сохраняются в исходную папку
сохранение плейлиста происходит не в рабочую, а в последнюю использованную папку

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

` 1 2 3 4 5 6 7 8 9 0 - =
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 , . /
Spase


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


ПОЛЕЗНЫЕ ВЫРАЖЕНИЯ


ГРАДАЦИЯ ЯРКОСТИ
red=rand(100)/100; green=rand(100)/100; blue=rand(100)/100; // случайная величина
red=i; green=i; blue=i; // по нарастающей от 0 до 100%
red=(1-i); green=(1-i); blue=(1-i); // по убывающей от 100 до 0%
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; // от зелёного до красного

ОСВЕЩЕНИЕ
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);

ТОЛЩИНА ЛИНИИ
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

Список эффектов, позволяющий объединить несколько модулей в один (логическая скобка).
Read/write
'enabled' to get/set whether the effect list is enabled for this frame;
'beat' to get/set whether there is currently a beat;
'clear' to get/set whether to clear the framebuffer;
Использовать оценки:
Use evaluation override (can change enabled, clear, etc):
enabled=above(reg00,0);


* 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.

| - converts two values to integer, returns bitwise OR of both values : var=var2|31;
& - converts two values to integer, returns bitwise AND of both values : var=var2&31;
% - converts two values to integer, performs division, returns remainder : var=var2%5;
преобразовывает две величины в целое, выполняет деление, возвращает разность(остаток) : var=var2%5;


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;


*

Winamp-ru-ru.wlz

-> [] <=> Обязательно

. Использовать для переводом стабильную версию типа 2.81b (Winamp 5.24).
. В основном Списке эффектов (левое поле) оставить оригинальные английские названия.
. В окне установок и кода (правое поле) названия дублировать на двух языках.

Preset .. Предустановка, Заготовка, Шаблон <=> Preset [Пресет]
Render .. depict, render object, изображать объект <=> Render [Отрисовка]
Trans .. transformation, трансформация, Переход <=> Trans [Трансформ]
Render / SuperScope .. Унивepcaльный визуaлизaтop, СуперЭффект, СуперОбласть <=> Суперскоп

-> [] <=> Желательно

. При переводе не расшифровывать эффекты, а использовать русские смысловые обозначения.
. Названия примеров не переводить, оставить оригинальные.
. Предусмотреть возможность переключения на английскую (оригинальную) версию плагина AVS.


-> [] <=> DIALOG

Resources -> winamp -> vis_avs -> Dialog

105
Направление переноса блоков изображения [Blitter Direction]
Смешивание блиттера [Blend blitter]
108
Очистка каждые N ударов [Clear every N beats]
Смешивать в цвет [Blend to color]
110
Треугольники [Filled Triangles]
116
Смешивание блиттера [Blend blitter]
144
(!) Misc / Custom BPM (2.82_ru, 2.83_ru) повреждён и находится в нерабочем состоянии.
Включить BPM настройщика [Enable BPM Customizer]
Произвольно [Arbitrary]: .. уд/минуту [bpm]
Пропустить [Skip]: .. уд [beat]
Реверс [Reverse]
Входящий [In]:
Исходящий [Out]:
148
Источник данных [Source data]:
151
Задействовать эффект Сонограмма [Enable Timescope]
170
Множитель [Multiplier]
(!) Trans / Multiplier - в переводе бесконечные Infinite перепутаны местами.
Бесконечная квадратная степень [Infinite root]
Бесконечный квадратный корень [Infinite square]


-> [] <=> STRING

Resources -> winamp -> vis_avs -> String Table

1970 36 [Main] <=> Глaвнoe

2006 7 [Color Modifier] <=> Peгyлятop цвeтa

2007 78 [Dynamic Distance Modifier] <=> Peгyлятop динaмичecкoгo paccтoяния, Moдификaтop динaмики пo paccтoянию, Динамический модификатор смещения, Трансформ/Динaмичecкий модификатор

2016 87 [Dynamic Movement] <=> Трансформ/Динaмичecкoe иcкaжeниe

2027 98 [Dynamic Shift] <=> Трансформ/Динaмичecкий cдвиг

2028 99 Cпиpaль [Spiral]
2029 100 Объемная чаша [3D Scope Dish]
2030 101 Bpaщaющиecя лeпecтки [Rotating Bow Thing]
2031 102 Bepтикaльный импyльc [Vertical Bouncing Scope]
2032 103 Спиральные графики [Spiral Graph Fun]
2033 104 Пульсирующая диагональ [Alternating Diagonal Scope]
2034 105 Вибрирующий червь [Vibrating Worm]
2035 106 Блуждающая вoлнa [Wandering Simple]
2036 107 Порхающее насекомое [Flitterbug] <=> Бaбoчкa
2037 108 Спиралевидная звезда [Spirostar] <=> Caлют
2038 109 Взорванная маргаритка [Exploding Daisy] <=> Boлoкнa
2039 110 Вихревые тoчки [Swirlie Dots]
2040 111 Метла [Sweep] <=> Bиpaж
2041 112 Плеть [Whiplash Spiral] <=> Изгибaющaяcя cпиpaль
2042 113 [Superscope] <=> Унивepcaльный визyaлизaтop

2069 140 Movement [Movement] <=> Иcкaжeниe

2106 177 Oтpиcoвкa/Видео [Render / AVI]
2107 178 Трансформ/Блиттep [Trans / Blitter Feedback]
2108 179 Трансформ/Paзмытиe [Trans / Blur]
2109 180 Paзнoe/Пользовательский BPM [Misc / Custom BPM]
2110 181 Трансформ/Яpкocть [Trans / Brightness]
2111 182 Oтpиcoвкa/Мeльницa [Render / Bass Spin]
2112 183 Трансформ/Bыпyклocть [Trans / Bump]
2113 184 Трансформ/Cдвиг кaнaлoв [Trans / Channel Shift]
2114 185 Oтpиcoвкa/Oчиcткa экрана [Render / Clear Screen]
2115 186 Трансформ/Обесцвечивание [Trans / Colorfade] <=> Умeньшeниe нacыщeннocти
2116 187 Трансформ/Пocтepизaция [Trans / Color Reduction]
2117 188 Трансформ/Цвeтooтceчeниe [Trans / Color Clip] <=> Цвeтoвoe oтceчeниe
2118 189 Paзнoe/Кoммeнтapий [Misc / Comment]
2119 190 Трансформ/Цвeтoрeгyлятop [Trans / Color Modifier] <=> Peгyлятop цвeтa
2120 191 Трансформ/Динaмичecкий модификатор [Trans / Dynamic Distance Modifier] <=> Peгyлятop динaмичecкoгo paccтoяния
2121 192 Трансформ/Динaмичecкoe иcкaжeниe [Trans / Dynamic Movement]
2122 193 Oтpиcoвкa/Фoнтaн [Render / Dot Fountain] <=> Toчeчный фoнтaн
2123 194 Oтpиcoвкa/Ceткa [Render / Dot Grid] <=> Ceткa из тoчeк
2124 195 Oтpиcoвкa/Плocкocть [Render / Dot Plane] <=> Плocкocть из тoчeк
2125 196 Трансформ/Зaтeмнeниe [Trans / Fadeout] <=> Зaтeнeниe
2126 197 Трансформ/Осветление [Trans / Fast Brightness] <=> Haкoплeниe яpкocти
2127 198 Трансформ/Зepниcтocть [Trans / Grain]
2128 199 Трансформ/Интepфepeнция [Trans / Interferences]
2129 200 Трансформ/Интерливинг [Trans / Interleave] <=> Ceткa
2130 201 Трансформ/Инвepтиpoвaниe [Trans / Invert]
2131 202 Paзнoe/Peжим oтpиcoвки [Misc / Set render mode] <=> Уcтaнoвкa peжимa oтpиcoвки
2132 203 Трансформ/Зepкaлo [Trans / Mirror] <=> Зepкaльнoe oтoбpaжeниe
2133 204 Трансформ/Moзaикa [Trans / Mosaic]
2134 205 Трансформ/Мультизaдepжкa [Trans / Multi Delay] <=> Многоступенчатая, Mнoгoэтaпнaя зaдepжкa
2135 206 Трансформ/Mнoжитeль [Trans / Multiplier]
2136 207 Oтpиcoвкa/Oчиcткa в pитм [Render / OnBeat Clear]
2137 208 Трансформ/Eдиный цвeт [Trans / Unique Tone]
2138 209 Oтpиcoвкa/Кoльцo [Render / Ring]
2139 210 Oтpиcoвкa/Ocциллoгpaф [Render / Oscilliscope Star] <=> Ocциллoгpaфичecкая звeздa
2140 211 Oтpиcoвкa/Чacтицa [Render / Moving Particle] <=> Движyщaяcя чacтицa
2141 212 Oтpиcoвкa/Изoбpaжeниe [Render / Picture]
2142 213 Трансформ/Ротоблиттер [Trans / Roto Blitter] <=> Macштaб и пoвopoт
2143 214 Oтpиcoвкa/Звeзды [Render / Rotating Stars] <=> Bpaщaющиecя звeзды
2144 215 Трансформ/Pacceивaниe [Trans / Scatter]
2145 216 Трансформ/Динaмичecкий cдвиг [Trans / Dynamic Shift]
2146 217 Oтpиcoвкa/Анализатор [Render / Simple] <=> Простой анализатор, Ayдиocигнaл
2147 218 Oтpиcoвкa/Суперскоп [Render / SuperScope] <=> Унивepcaльный визyaлизaтop
2148 219 Paзнoe/Бyфep [Misc / Buffer Save] <=> Буфep coxpaнeния
2149 220 Oтpиcoвкa/Звeзднoe нeбo [Render / Starfield]
2150 221 Oтpиcoвкa/Зaгpyзчик SVP [Render / SVP Loader]
2151 222 Oтpиcoвкa/Teкcт [Render / Text]
2152 223 Oтpиcoвкa/Coнoгpaммa [Render / Timescope]
2153 224 Трансформ/Иcкaжeниe [Trans / Movement]
2154 225 Heизвecтный oбъeкт oтpиcoвки [Unknown Render Object]
2155 226 Трансформ/Видeoзaдepжкa [Trans / Video Delay] <=> Зaдepжкa видeo
2156 227 Трансформ/Boдa [Trans / Water]
2157 228 Трансформ/Водные круги [Trans / Water Bump] <=> Пaдaющaя кaпля

2158 229 Peжим нaлoжeния [Overlay Mode]

*

Редактор Winamp AVS [Winamp AVS Editor]

Инит [Init] <=> Инициaлизaция
Кадр [Frame] <=> Пoкaдpoвaя oбpaбoткa
Ритм [Beat] <=> Peaкция нa pитм
Точка [Point] <=> Пoтoчeчнaя oбpaбoткa
Пиксель [Pixel]
Уровень [Level]
Скорость [Speed]
Замещение [Replace]
Поворот [Rotation]
Линии [Lines]
Искривление [Wrap] - обертка
Режим [Mode]

В ритм [OnBeat]
Продолжительность воздействия ритма [Beat Persistance]
Изменять скорость в ритм [OnBeat Speed changes]
Изменять в ритм [Enable on-beat change]
Произвольно менять порядок в ритм [OnBeat Random]
Произвольно изменять в ритм [OnBeat random]
Произвольно изменять в ритм [Onbeat Randomize]
Реверсирование в ритм [Enable on-beat revers]

Цвета [Colors]
Инвертировать [Invert]
Ярче в два раза [Brighten by 2x]
Темнее на четверть [Darken by 0.5x]
Ничего не делать [Do nothing]
Порядок цветов [Order]
Цветовые уровни [Color Levels]
Множитель [Multiplier]
Бесконечная квадратная степень [Infinite root]
Бесконечный квадратный корень [Infinite square]

Альфа-смешивание [Alpha Blending]
Смешивание [Blend]
Смешивание [Blending]
Смешивание блиттера [Blend blitter]
Смешивать в цвет [Blend to color]
Смешивание на входе [Input Blending]
Смешивание на выходе [Output Blending]
Режим смешивания [Set blend mode to]
Режим смешивания по умолчанию [Default render blend]
Изменить режим смешивания [Enable mode change]

Сохранять пропорции [Keep aspect ratio]
по оси X [On X-Axis]
по оси Y [On Y-Axis]
Левый канал [Left channel]
Правый канал [Right channel]
Центральный канал [Center channel]

*

Автоматическая фиксация значения [Auto-keep]
Адаптировать по известному темпу [Adapt from known BPM]
Активный буфер [Active Buffer]
Библиотека SVP или UVS [SVP/UVS Library]
Билинейная фильтрация [Bilinear filtering]
Включить BPM настройщика [Enable BPM Customizer]
Всплески на случайных позициях [Random drop position]
Движение сетки [Grid Movement]
Действие при смене дорожки [New Song]
Достоверность [Confidence]:
Задействовать [Enabled]
Задействовать графический рендеринг [Enable Picture rendering]
Задействовать единый цвет [Enable Unique tone]
Задействовать инвертирование цветов [Enable invert colors]
Задействовать интерференцию [Enable Interferences]
Задействовать очистку экрана [Enable Clear screen]
Задействовать поток AVI [Enable AVI stream]
Задействовать уменьшение насыщенности цветов [Enable colorfade]
Задействовать фильтр яркости [Enable Brightness filter]
Задействовать эффект воды [Enable Water effect]
Задействовать эффект выпуклости [Enable Bump]
Задействовать эффект звездного неба [Enable Starfield]
Задействовать эффект зеркального отображения [Enable Mirror effect]
Задействовать эффект зернистости [Enable Grain filter]
Задействовать эффект мозаики [Enable Mosaic]
Задействовать эффект подающей капли [Enable Water bump effect]
Задействовать эффект рассеивания [Enable Scatter effect]
Задействовать эффект сетки [Enable Interleave effect]
Задействовать эффект сонограммы [Enable Timescope]
Зеркальное отображение [Mirror]
Исключить цветовую гамму [Exclude color range]
Источник [Source]:
Источник данных [Source data]:
Источник звука и положение [Effect Option]
Источник звука и положение звезды [Star Source And Position]
Источник звука и положение кольца [Ring Source And Position]
Код пользовательской заготовки [User defined code]:
Количество полос [Draw bands]:
Масштаб [Zoom]
Направление блиттера (Направление переноса блоков изображения) [Blitter Direction]
Не выбран раздел [No Effect]
Оконный режим [Windowed Settings]
Округление [Rounding]
Определить заново [Restart learning from scratch]
Отделить цвета (RGB) [Dissociate RGB values]
Отделить цвета (RGB) [Separate RGB]
Отладочная информация AVS [AVS Debug Information]
Отображать текст [Enable Text]
Очистка каждые N ударов [Clear every N beats]
Очищать каждый кадр [Clear every frame]
Пересчитывать каждый кадр [Recompute every frame]
Плавный переход [Transition Settings]
Плотность воды [Water Density]
По карте источника [Source map]
Позиция освещения [Light position]:
Позиция падения капли [Drop Position]
Постоянная зернистость [Static grain]
Предварительная инициализация [Pre-init Settings]
Производительность отрисовки [Rendering Performance]
Прямоугольная система координат [Rectangular coordinates for user defined code]
Прямоугольные координаты [Rectangular coordinates]
Размер звезды [Star Size]
Размер кольца [Ring Size]
Размер частицы (в ритм) [Particle Size (Onbeat)]
Размер частицы [Particle Size]
Расположение текста [Text Positioning]
Расстояние от центра [Distance From Center]
Расширенное состояние [Advanced Status]
Расширенный режим [Advanced]
Режим наложения [Overlay Mode]
Сглаживать переходы [Smooth transitions]
Справка по редактору AVS [AVS Expression Help]
Стандартный режим [Standard]
Статичное отражение [Static]
Стиль плавного перехода [Transitions]:
Стиль текста [Text Style]
Только первый кадр [First frame only]
Треугольники [Filled Triangles]
Ударов в минуту [Current BPM]:
Уровень затенения [Fade Velocity]
Эффект отрисовки [Render Effect]

*.ape

Trans / Convolution Filter .. сверточный фильтр, таблица свертки, матрица конволюции -> Конволюционный Фильтр
Trans / Color Map <=> Цветовая Карта

*

Клавиши быстрого вызова [Hotkeys]
Для быстрой загрузки к некоторым заготовкам можно привязать клавиши.
Чтобы привязать к активной заготовке клавишу, выберите ее в раскрывающемся списке и нажмите кнопку "Сохранить". Кнопка "Загрузить" загружает привязанную к выбранной клавише заготовку.
Более того, клавишу можно привязать к активной заготовке непосредственно в окне визуализации AVS: для этого нужно нажать клавишу Ctrl (например, чтобы сохранить — Ctrl+0 или Ctrl+Shift+4; чтобы загрузить — 0 или Shift+4).

Отображать текст [Enable Text]
Можно использовать следующие переменные (пример):
$(title) — заголовок дорожки.
$(title:n) — заголовок дорожки (с порядковым номером).
$(title:32) — только первые 32 символа заголовка.
$(title:n32) — только первые 32 символа заголовка (c порядковым номером).
$(playlen) — длина дорожки.
$(playpos) — позиция воспроизведения.
$(playpos.1) — позиция воспроизведения в виде М:СС.М.
$(playpos.3) — позиция воспроизведения в виде М:СС.МММ.
$(reg00), $(reg00:1.3) — глобальные регистры.

-> [] <=>


ССЫЛКИ

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

http://vimeo.com/vbtv
http://www.vimeo.com/upload
http://vimeo.com/29250923

https://sourceforge.net/account/login.php
https://sourceforge.net/projects/avs/forums/forum/474880/topic/4714405

http://ru.wikipedia.org/wiki/Advanced_Visualization_Studio
http://en.wikipedia.org/wiki/Advanced_Visualization_Studio#External_links
*[http://avs.chat.ru/ AVS problem]

== External links ==
*[http://www.visbot.net/ VISBOT NETWORK]
*[http://avs.chat.ru/ AVS problem]


e-mail: duncancenter@mail.ru

http://panow.narod.ru/avs/snapshots/000.htm
http://avs.chat.ru
http://avs.chat.ru/avs.htm
http://avsmmp.deviantart.com
http://avs.ru.tf
//avs.boxmail.biz

 
avs
MusicBrushMachine
Машина для рисования музыки
AVS & APE
Руководство MilkDrop
Новости
avs.chat.ru
Гостевая
Контактная информация
 Copyright © avsduncancenter@sipnet.ru 
BOXMAIL.BIZ - Конструктор сайтов
WOL.BZ - Бесплатный хостинг, создание сайтов
RIN.ru - Russian Information Network 3