Пользовательские индикаторы к foo_vis_vumeter

Список разделов Аудиоплеер foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #901 MC Web » 13.10.2020, 21:24

kgena_ua писал(а):овый экспромт.
Вспомнил такой индикатор
Неплохо вписывается, не хватает только регулировки размера индикатора колесиком мышки.
Спойлер
Изображение
Сборка foobar2000 RU DarkOne + DUIFoon от MC Web
MC Web
Гуру
Аватара
Репутация: 220
С нами: 7 лет 3 месяца

Сообщение #902 kgena_ua » 13.10.2020, 21:31

MC Web писал(а):не хватает только регулировки размера индикатора колесиком мышки
MC Web, но колесе VUMeter.Offset. Можно сделать Shift +
А вообще хороший индикатор - в ретро стиле и большой диапазон от -100 db.
На Pink Floyd The Wall хорошо выглядит.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 56
Откуда: Украина, Днепр
Репутация: 474
С нами: 7 лет 7 месяцев

Сообщение #903 AHAPXICT » 13.10.2020, 23:30

kutuzof, ну ты красава! Спасибо огромное! А у тебя остался проект Mitsubishi в .psd? Можно заодно и проект для VUEditor вместе с ним, бо у меня на ноутбуке нет нечего. Первые три VU чётко стали, даже по конфигурации похожий UHER за счёт того что панель внизу как раз подходит под затемнение градиента, а Mitsubishi тёмной частью вверху на самом светлом месте. Короче ты понял. Я попробовал маску сделать на скорую руку, так живее выглядит, ну стёкла затемню. В ЛС кинь если что. А ты mpv не ставил себе, или планы может имеешь? Я с той темы не вылажу, другие сообщения почитать некогда.
Mitsubishi.png
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 242
С нами: 7 лет

Сообщение #904 MC Web » 13.10.2020, 23:42

kgena_ua писал(а):А вообще хороший индикатор - в ретро стиле и большой диапазон от -100 db.
Так то да, если бы не видел вживую. Для полного кайфа немного объемности не хватает.
Спойлер
Изображение
Сборка foobar2000 RU DarkOne + DUIFoon от MC Web
MC Web
Гуру
Аватара
Репутация: 220
С нами: 7 лет 3 месяца

Сообщение #905 kutuzof » 14.10.2020, 10:20

AHAPXICT писал(а):А у тебя остался проект Mitsubishi в .psd?
Скинул в личку, правда не нашёл того .psd, что был изначально.
AHAPXICT писал(а):А ты mpv не ставил себе, или планы может имеешь?
Ставил, не много поигрался и удалил. Локальные клипы не смотрю, да их у меня и нет. Короче себе пока ставить не буду.
kutuzof M
Бывалый
Аватара
Возраст: 33
Откуда: Орёл
Репутация: 189
С нами: 4 года 2 месяца

Сообщение #906 AHAPXICT » 14.10.2020, 14:24

Спасибо. :beer:
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 242
С нами: 7 лет

Сообщение #907 kgena_ua » 16.10.2020, 21:53

Peak meter 6Е5С - такой ретро стиль.
Кое-что добавил.
Скрипт совместим c wsh_panel_mod, jscript_panel и spider_monkey_panel.
Код: Выделить всё
// ==PREPROCESSOR==
// @name "Peak meter 6Е5С"
// @author "kgena_ua"
// @version "16102020"
// ==/PREPROCESSOR==

function RGB(r,g,b) {
        return (0xff000000|(r<<16)|(g<<8)|(b));
}

var font = gdi.Font("Arial", 11, 0);

DT_LEFT = 0x00000000;
DT_CENTER = 0x00000001;
DT_VCENTER = 0x00000004;
DT_SINGLELINE = 0x00000020;
DT_NOPREFIX = 0x00000800;

var ww, wh;
var on_mouse = false;

var VUMOffset_t;
var wheel = false;
var tooltip_timer;

ColorTypeCUI = {
    text: 0,
    selection_text: 1,
    inactive_selection_text: 2,   
    background: 3,   
    selection_background: 4,   
    inactive_selection_background: 5,   
    active_item_frame: 6   
}   
                     
ColorTypeDUI = {                     
   text: 0,                  
   background: 1,                  
   highlight: 2,                  
   selection: 3                  
}

function get_color(){
    try {    
        if (window.InstanceType == 0){   
            bgcolor = window.GetColorCUI(ColorTypeCUI.background);   
            c1 = window.GetColorCUI(ColorTypeCUI.inactive_selection_text);   
            c2 = window.GetColorCUI(ColorTypeCUI.text);
            c3 = window.GetColorCUI(ColorTypeCUI.selection_text);
        } else if (window.InstanceType == 1) {                      
            bgcolor = window.GetColorDUI(ColorTypeDUI.background);
            c1 = window.GetColorDUI(ColorTypeDUI.highlight);   
            c2 = window.GetColorDUI(ColorTypeDUI.text);
        }   
    } catch(e){};
    try {    
        if (window.InstanceType == 0){                     
            bgcolor = window.GetColourCUI(ColorTypeCUI.background);
            c1 = window.GetColourCUI(ColorTypeCUI.inactive_selection_text);   
            c2 = window.GetColourCUI(ColorTypeCUI.text);
        } else if (window.InstanceType == 1) {                      
            bgcolor = window.GetColourDUI(ColorTypeDUI.background);
            c1 = window.GetColourDUI(ColorTypeDUI.highlight);   
            c2 = window.GetColourDUI(ColorTypeDUI.text);
        }   
    } catch(e){};
    window.Repaint();   
}

get_color();

function on_colors_changed(){
    get_color();
}

var dll;
var is_dll = utils.CheckComponent("\\user-components\\foo_vis_vumeter\\foo_vis_vumeter");
if (is_dll) {dll = false} else {dll = true};

if (dll) {VUMeter = new ActiveXObject("VUMeter")};   
if (dll) {VUMeter.RegisterWindow(window.ID)};
   
function ToDB(Level){   
    return Math.round(2000*Math.log(Level)/Math.LN10)/100;   
}

var panel_on = true;

var x = window.Width / 2;
var y = window.Width / 2;
var steps = 360;
var r1 = window.GetProperty("radius", 50);
var r2 = r1 * 0.5;
var d1 = r1 * 2;
var d2 = r2 * 2;
var scale_on = window.GetProperty("scale on", true);

var c2 = RGB(0, 255, 127);
var c1 = combineColors(c2, RGB(255, 255, 255), 0.7)
var c3 = combineColors(c2, bgcolor, 0.5)

var color = [];

for(var j = 0; j < 10; j++) {
    color.push(combineColors(c1, bgcolor, j / 10)); /// bgcolor
}

var anglLP = 0;
var anglRP = 0;
var anglLP_p = 180;
var anglRP_p = 180;
var anglLP_stop = 180;
var anglRP_stop = 180;
var Lk = Rk = 0;

function on_paint(gr) {   
    gr.FillSolidRect(0, 0, ww, wh, bgcolor);
   
    if (dll && panel_on) {
        L = VUMeter.LeftLevel;   
        R = VUMeter.RightLevel;   
        LM = VUMeter.LeftPeak;   
        RM = VUMeter.RightPeak;   

        gr.SetSmoothingMode(4);

        for (var i = 180; i < 360; i++) {
            xP1 = (r1 * Math.cos(Math.PI * i / steps * 2 - Math.PI / 2));
            yP1 = (r1 * Math.sin(Math.PI * i / steps * 2 - Math.PI / 2));
            xP2 = (r2 * Math.cos(Math.PI * i / steps * 2 - Math.PI / 2));
            yP2 = (r2 * Math.sin(Math.PI * i / steps * 2 - Math.PI / 2));
           
            LP = ToDB(LM);
            wwwLP = Math.pow(10,((LP + 100) / 50));
 
            anglLP = Math.round(180 + (wwwLP * 130 / 100));
           
            if (anglLP > 180 || anglLP_p > 190) {
           
                if (anglLP_stop > 180){  // stop or pause
                    anglLP_stop = anglLP_stop > 180 ? anglLP_stop - 0.02 : 180;
                    anglLP = Math.round(anglLP_stop);
                }

                if (anglLP > i){
                    c =  i < 310 ? c2 : c1;
                    gr.DrawLine(x + xP1, y + yP1, x + xP2, y + yP2, 2, c);
                }
                       
                if (wwwLP > 0 && anglLP_p >= anglLP){
                    Lk = Lk * 1.0005;
                    anglLP_p = anglLP_p - Lk;
                } else {
                    Lk = 0.005;
                    anglLP_p = anglLP;
                }

                if (Math.round(anglLP_p) == i){
                    c =  i < 310 ? c2 : c1;
                    gr.DrawLine(x + xP1, y + yP1, x + xP2, y + yP2, 3, c);
                }
            }
           
            xL1 = ((r1 + 8) * Math.cos(Math.PI * i / steps * 2 - Math.PI / 2));
            yL1 = ((r1 + 8) * Math.sin(Math.PI * i / steps * 2 - Math.PI / 2));
            xL2 = ((r1 + 4) * Math.cos(Math.PI * i / steps * 2 - Math.PI / 2));
            yL2 = ((r1 + 4) * Math.sin(Math.PI * i / steps * 2 - Math.PI / 2));

            LL = Math.pow(10,((ToDB(L) + 100) / 50));
            anglLL = Math.round(180 + (LL * 180 / 100))

            if (anglLL > i){
                gr.DrawLine(x + xL1, y + yL1, x + xL2, y + yL2, 2, c3);
            }
        }

        ///////////////////////////////////////////////////////////////////////////////////////////////////

        for (var j = 0; j < 180; j++) {
            xP1 = (r1 * Math.cos(Math.PI * j / steps * 2 - Math.PI / 2));
            yP1 = (r1 * Math.sin(Math.PI * j / steps * 2 - Math.PI / 2));
            xP2 = (r2 * Math.cos(Math.PI * j / steps * 2 - Math.PI / 2));
            yP2 = (r2 * Math.sin(Math.PI * j / steps * 2 - Math.PI / 2));
               
            RP = Math.round(ToDB(RM));
            wwwRP = Math.pow(10,((RP + 100) / 50));
 
            anglRP = 180 - Math.round((wwwRP * 130 / 100));
           
            if (anglRP < 180 || anglRP_p < 160) {
           
                if (anglRP_stop < 180){  // stop or pause
                    anglRP_stop = anglRP_stop < 180 ? anglRP_stop + 0.02 : 180;
                    anglRP = Math.round(anglRP_stop);
                }

                if (anglRP < j){
                    c =  j > 50 ? c2 : c1;
                    gr.DrawLine(x + xP1, y + yP1, x + xP2, y + yP2, 2, c);
                }
               
                if (wwwRP > 0 && anglRP_p <= anglRP){
                    Rk = Rk * 1.0005;
                    anglRP_p = anglRP_p + Rk;
                } else {
                    Rk = 0.005;
                    anglRP_p = anglRP;
                }

                if (Math.round(anglRP_p) == j){
                    c =  j > 50 ? c2 : c1;
                    gr.DrawLine(x + xP1, y + yP1, x + xP2, y + yP2, 3, c);
                }
            }
           
            xL1 = ((r1 + 8) * Math.cos(Math.PI * j / steps * 2 - Math.PI / 2));
            yL1 = ((r1 + 8) * Math.sin(Math.PI * j / steps * 2 - Math.PI / 2));
            xL2 = ((r1 + 4) * Math.cos(Math.PI * j / steps * 2 - Math.PI / 2));
            yL2 = ((r1 + 4) * Math.sin(Math.PI * j / steps * 2 - Math.PI / 2));

            RL = Math.pow(10,((ToDB(R) + 100) / 50));
            anglRL = Math.round(180 - (RL * 180 / 100))

            if (anglRL < j){
                gr.DrawLine(x + xL1, y + yL1, x + xL2, y + yL2, 2, c3);
            }
        }

        th = gr.CalcTextHeight("0", font);

        for (var i = 0; i < 360; i++) {
            if (scale_on){
       
                xPt = ((r1 + 17) * Math.cos(Math.PI * i / steps * 2 - Math.PI / 2));
                yPt = ((r1 + 17) * Math.sin(Math.PI * i / steps * 2 - Math.PI / 2));

                if (i == 351 || i == 9){
                    tw = gr.CalcTextWidth(" 6", font);
                    gr.GdiDrawText(" 6", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }

                if (i == 329 || i == 31){
                    tw = gr.CalcTextWidth(" 3", font);
                    gr.GdiDrawText(" 3", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }
       
                if (i == 310 || i == 50){
                    tw = gr.CalcTextWidth(" 0", font);
                    gr.GdiDrawText(" 0", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }
       
                if (i == 293 || i == 67){
                    tw = gr.CalcTextWidth(" -3", font);
                    gr.GdiDrawText(" -3", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }
       
                if (i == 266 || i == 94){
                    tw = gr.CalcTextWidth(" -9", font);
                    gr.GdiDrawText(" -9", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }
       
                if (i == 232 || i == 128){
                    tw = gr.CalcTextWidth("-20", font);
                    gr.GdiDrawText("-20", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }
       
                if (i == 193 || i == 167){
                    tw = gr.CalcTextWidth("-50", font);
                    gr.GdiDrawText("-50", font, c2, x + xPt - tw / 2, y + yPt - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                }
            }
        }

        gr.DrawLine(x, y - r1 - 8, x, y + r1 + 8, 2, bgcolor); /// bgcolor
        //gr.DrawEllipse(x - r1 - 5, y - r1 - 5, d1 + 10, d1 + 10, 2, c3);
        gr.DrawEllipse(x - r2 + 5, y - r2 + 5, d2 - 10, d2 - 10, 2, c3);
   

       
        if (wheel) {
            VUMOffset_t = Math.round(VUMeter.Offset) + " db";
            th = gr.CalcTextHeight(VUMOffset_t, font);
            tw = gr.CalcTextWidth(VUMOffset_t, font);
            gr.GdiDrawText(VUMOffset_t, font, c2, x - tw / 2, y - th / 2, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
        }

    }
}

var plback = false;
var pause = false;

function on_playback_stop(reason) {
    anglLP_stop = anglLP;
    anglRP_stop = anglRP;
    plback = false;
    window.Repaint();
}

function on_playback_pause(state) {
    anglLP_stop = anglLP;
    anglRP_stop = anglRP;
    pause = state;
    window.Repaint();
}

function on_size() {   
    ww = window.Width;   
    wh = window.Height;
    x = ww / 2;
    y = wh / 2;
}   

function on_mouse_move(x,y) {
    on_mouse = true;
    window.SetCursor(32649);
}

function on_mouse_leave() {
    on_mouse = false;
    window.SetCursor(32512);
}

function on_mouse_wheel(step) {
    wheel = true;
    VUMeter.Offset = VUMeter.Offset + step;
    tooltip_timer && window.ClearTimeout(tooltip_timer);
    tooltip_timer = window.SetTimeout(function() {
        wheel = false;
        tooltip_timer && window.ClearTimeout(tooltip_timer);
    }, 2000);
}

function combineColors(c1, c2, f){ // When fraction is 0, result is 100% color1, when f is 1, result is 100% color2.
    var c1 = toRGB(c1);
    var c2 = toRGB(c2);

    var r = Math.round(c1[0] + f * (c2[0] - c1[0]));
    var g = Math.round(c1[1] + f * (c2[1] - c1[1]));
    var b = Math.round(c1[2] + f * (c2[2] - c1[2]));
   
    return (0xff000000 | (r << 16) | (g << 8) | (b));
}

function toRGB(d){ // convert back to RGB values
    var d = d-0xff000000;
    var r = d >> 16;
    var g = d >> 8 & 0xFF;
    var b = d & 0xFF;

    return [r,g,b];
}

function print(msg) {
    try {   
        fb.trace(msg);   
    } catch(e){console.log(msg);};         
}

function on_playback_starting(cmd, is_paused){
    anglLP_stop = 180;
    anglRP_stop = 180;
    anglLP_p = 180;
    anglRP_p = 180;
    plback = true;
    window.Repaint();
}

I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 56
Откуда: Украина, Днепр
Репутация: 474
С нами: 7 лет 7 месяцев

Сообщение #908 MOSSHIFI » 17.10.2020, 05:40

QQ图片20201017093032.png


this is foorbar2000 vu ?
Yesterday, all my troubles seemed so far away.Now it looks as though they're here to stay.Oh, I believe in yesterday.
MOSSHIFI
Новичок
Аватара
Репутация: 1
С нами: 1 год

Сообщение #909 macarych » 17.10.2020, 10:23

Why not? All that remains is to make an indicator.
macarych M
Автор темы, Гуру
Аватара
Репутация: 406
С нами: 11 лет 10 месяцев

Сообщение #910 kutuzof » 17.10.2020, 13:00

MOSSHIFI, only exists in a dark shell - Power
kutuzof M
Бывалый
Аватара
Возраст: 33
Откуда: Орёл
Репутация: 189
С нами: 4 года 2 месяца

Сообщение #911 MOSSHIFI » 17.10.2020, 15:44

Okay thank you kutuzof :smile:

Добавлено спустя 26 минут 23 секунды:
kutuzof Can you upload attachments. Power (mod DarkOne) by G121121.zip
Yesterday, all my troubles seemed so far away.Now it looks as though they're here to stay.Oh, I believe in yesterday.
MOSSHIFI
Новичок
Аватара
Репутация: 1
С нами: 1 год

Сообщение #912 kutuzof » 17.10.2020, 16:29

MOSSHIFI, i can't attach here, the file size is too large. If there is, I can send it by mail.
kutuzof M
Бывалый
Аватара
Возраст: 33
Откуда: Орёл
Репутация: 189
С нами: 4 года 2 месяца

Сообщение #913 AHAPXICT » 17.10.2020, 16:57

kutuzof, вечером, наверно ближе к ночи, отправлю тебе в ЛС наброски. Ещё раз огромная благодарность за пректы :beer: Это же какой титатаничский труд был проделан. Я на всём готовом двое суток просидел, то колор не подходит, то градиент не тот. Как я надпись пол часа таскал в право-лево на один экранный пиксель! Пиксель вправо не по центру, пиксель влево опять не по центру, причём видно на глаз а на поверку разница в один б пиксель.

Добавлено спустя 8 минут 28 секунд:
Mitsubishi.png


Добавлено спустя 16 минут 54 секунды:
VU mask Gradient.png
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 242
С нами: 7 лет

Сообщение #914 kutuzof » 17.10.2020, 17:27

AHAPXICT, приветствую! С градиентом круто смотрится.
kutuzof M
Бывалый
Аватара
Возраст: 33
Откуда: Орёл
Репутация: 189
С нами: 4 года 2 месяца

Сообщение #915 AHAPXICT » 17.10.2020, 17:39

kutuzof, потом всё отправлю, маски со скриптом в котором, наконец-то, раскоментировал строки сделал всё как надо. Теперь можно в панел любой VU Meter вписать, рамки великое дело. Это как картина без рамы, так себе кусок холста, а в раме произведение искусства. Mitsubishi сделал в двух вариантах, один как есть, второй по вертикали градиент не масштабируется вписывается в окно, то-есть ...х126pix. Нагрузка на проц большой 56%, маленькй 8-9%
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 242
С нами: 7 лет

Сообщение #916 MOSSHIFI » 17.10.2020, 20:50

kutuzof this is mine qq mailbox.86551754@qq.com

The new crown virus has begun to break out again. Pay attention to hygiene and wear masks. :smile:

Добавлено спустя 47 секунд:
86551754@qq.com
Yesterday, all my troubles seemed so far away.Now it looks as though they're here to stay.Oh, I believe in yesterday.
MOSSHIFI
Новичок
Аватара
Репутация: 1
С нами: 1 год

Сообщение #917 AHAPXICT » 18.10.2020, 02:47

А вто ещё в догонку пару рабочих концептов.
Marantz.png
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 242
С нами: 7 лет

Сообщение #918 MOSSHIFI » 18.10.2020, 06:08

AHAPXICT Blue is tasteful :pray:

Добавлено спустя 4 минуты 18 секунд:
AHAPXICT Whether from Guangzhou, China. :smile:
Yesterday, all my troubles seemed so far away.Now it looks as though they're here to stay.Oh, I believe in yesterday.
MOSSHIFI
Новичок
Аватара
Репутация: 1
С нами: 1 год

Сообщение #919 AHAPXICT » 18.10.2020, 10:35

Всем доброго утра, а тем кто ложится спать спокойного сна. Хватит одними скришотами затравливать, сделал для пацанов специальную версию.
Все права принадлежат kutuzof, он всё делал с нуля от картинки до проекта в фотошоп. Моя, не помню какая по счёту, интерпретация Uher CG 321 blue
Uher CG 321 blue1.png

Uher CG 321 blue.png

Скачать с Google Disc: Uher CG 321 blue

Добавлено спустя 4 часа 44 минуты:
просто картинка
Изображение[/img]

Добавлено спустя 40 секунд:
Изображение
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 242
С нами: 7 лет

Сообщение #920 MOSSHIFI » 19.10.2020, 06:29

I met VU in the HIFI City yesterday.
Вложения
timg.jpg
Yesterday, all my troubles seemed so far away.Now it looks as though they're here to stay.Oh, I believe in yesterday.
MOSSHIFI
Новичок
Аватара
Репутация: 1
С нами: 1 год

Пред.След.

Вернуться в Секреты foobar2000