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

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

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

Сообщение #861 robertospeed » 27.07.2020, 00:30

kutuzof, как вы добавили эти Vu Meters в свою версию DarkOne?
robertospeed M
Аватара
Откуда: Italia
Репутация: 1
С нами: 6 лет 7 месяцев

Сообщение #862 kutuzof » 27.07.2020, 19:40

robertospeed, добавляешь VU Meter в PSS "Control Panel" и заменяешь в нём скрипт
Вложения
Control Panel.txt
(4.41 КБ) Скачиваний: 417
Screenshot_1.png
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #863 robertospeed » 27.07.2020, 20:40

kutuzof, спасибо, я сделал это, ты великолепен
robertospeed M
Аватара
Откуда: Italia
Репутация: 1
С нами: 6 лет 7 месяцев

Сообщение #864 kutuzof » 30.07.2020, 22:43

Sanyo RD 7
Вложения
Sanyo RD 7.zip
(253.46 КБ) Скачиваний: 465
Sanyo RD 7.png
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #865 RobertBodo » 07.08.2020, 17:26

kutuzof, в дакван 4 - 1.3.8 вкладка Лэйаут совсем в другом месте, и Стэксплиттеров в ней нашел 3, строка VUmeter4 отсутствует в панели, которая открывается.. из них нужный методом тыка стремно искать, старая тема рухнула именно по этой причине..any idea?
RobertBodo
Репутация: 2
С нами: 5 лет 6 месяцев

Сообщение #866 kutuzof » 08.08.2020, 15:23

Вложения
Uher CG 321.png
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #867 kutuzof » 31.08.2020, 16:08

Вложения
Marantz PM 200.png
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #868 macarych » 03.09.2020, 19:46

Yamaha

Изображение

Скачать

Добавлено спустя 54 минуты 9 секунд:
без имени

NN99.jpg
Вложения
NN99.zip
(433.24 КБ) Скачиваний: 788
macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 2 месяца

Сообщение #869 MOSSHIFI » 03.09.2020, 23:01

:smile: Future Punk VU
Вложения
QQ图片20200904025436.jpg
QQ图片20200904025426.jpg
QQ图片20200904025624.jpg
MOSSHIFI
Аватара
Репутация: 1
С нами: 4 года 4 месяца

Сообщение #870 macarych » 08.09.2020, 22:30

Было сделано для последней конфигурации но не вошло в состав. На любителя.

Спойлер
Изображение

Скачать
macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 2 месяца

Сообщение #871 kutuzof » 14.09.2020, 21:31

Вложения
Fisher.png
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #872 kutuzof » 20.09.2020, 19:28

LXI
Вложения
LXI.zip
(11.21 КБ) Скачиваний: 448
LXI.png
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #873 macarych » 21.09.2020, 04:33

kutuzof, дружище я, было, подумал что ты заставил синие кривые двигаться, давай быстрее скачивать и смотреть :)
macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 2 месяца

Сообщение #874 kutuzof » 21.09.2020, 09:06

macarych, не буду обещать (нет времени), может как нибудь попробую. :wink:
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #875 AHAPXICT » 21.09.2020, 12:18

macarych, слово в слово. Сначала подумал может на пиках график перерисовывает.
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Сообщение #876 kutuzof » 21.09.2020, 22:15

LXI2 - я заставил их двигаться :biggrin:
Вложения
LXI2.zip
(48.84 КБ) Скачиваний: 447
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #877 macarych » 21.09.2020, 22:39

kutuzof:я заставил их двигаться

Факт! )))
macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 2 месяца

Сообщение #878 macarych » 23.09.2020, 23:01

Сделал для плеера который в компе стоящем на рабочем месте в мастерской по ремонту сварочного оборудования.

2020-09-23_222916.jpg



Скачать
macarych M
Автор темы
Аватара
Репутация: 417
С нами: 15 лет 2 месяца

Сообщение #879 kgena_ua » 25.09.2020, 15:52

Скрипт на быструю руку.
Просто увидел LXI и захотелось сделать вертикальный индикатор.
Безымянный.png
Безымянный.png (3.47 КБ) Просмотров: 5469

Совместим c wsh_panel_mod и jscript_panel
Код: Выделить всё
function RGB(r,g,b) {
    return (0xff000000|(r<<16)|(g<<8)|(b));
}

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

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

var ww, wh;
var on_mouse = false;

var pos_x = 0, pos_y = 0;;
var VUMOffset_t, t_height, t_width;
var wheel = false;
var tooltip_timer;

var color = [];

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);
        } 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 db = [-20, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3];

var points = db.length;

var lp_s = [];
var rp_s = [];

for (var i = 0; i <= points; i++) {   
    lp_s[i] = 0;
    rp_s[i] = 0;
}

var d_w = window.GetProperty("d width", 10);
var d_h = window.GetProperty("d height", 4);
var d_offset = window.GetProperty("d offset", 15);

var panel_xl = Math.round(window.Width / 2 - d_offset * points - d_w / 2);
var panel_xr = Math.round(window.Width / 2 + (d_offset - d_w) + d_w / 2);
var panel_h = window.GetProperty("panel height", 60);   
var panel_y = Math.round(window.Height / 2 - panel_h / 2);

var scale_on = window.GetProperty("scale on", true);

var color_p1 = Math.round(panel_h * 0.1);
var color_p2 = panel_h - color_p1;

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

var panel_on = true;

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

        if (fb.IsPlaying) {
            for (var i = 0; i < points; i++) {
                if (Math.round(ToDB(LM)) == db[i]) lp_s[i] = 0;

                lp_color = lp_s[i] <= color_p1 ? c1 : color[lp_s[i] - color_p1];
                if (lp_s[i] >= 0) gr.FillSolidRect(panel_xl + d_offset * i, panel_y + lp_s[i], d_w, d_h, lp_color);
                if (lp_s[i] == panel_h) gr.FillSolidRect(panel_xl + d_offset * i, panel_y + panel_h, d_w, 1, color[Math.round(color.length * 0.5)]);
       
                if (Math.round(ToDB(RM)) == db[points - 1 - i]) rp_s[i] = 0;
               
                rp_color = rp_s[i] <= color_p1 ? c1 : color[rp_s[i] - color_p1];
                if (rp_s[i] >= 0) gr.FillSolidRect(panel_xr + d_offset * i, panel_y + rp_s[i], d_w, d_h, rp_color);
                if (rp_s[i] == panel_h) gr.FillSolidRect(panel_xr + d_offset * i, panel_y + panel_h, d_w, 1, color[Math.round(color.length * 0.5)]);
            }
           
            for (var j = 0; j < lp_s.length; j++) {
                if (lp_s[j] < panel_h){
                    lp_s[j] = lp_s[j] + 1;
                } else {
                    lp_s[j] = panel_h;
                }
            }

            for (var j = 0; j < rp_s.length; j++) {
                if (rp_s[j] < panel_h){
                    rp_s[j] = rp_s[j] + 1;
                } else {
                    rp_s[j] = panel_h;
                }
            }
       
            if (wheel) {
                VUMOffset_t = Math.round(VUMeter.Offset) + " db";
                th = gr.CalcTextHeight(VUMOffset_t, font) + 2;
                tw = gr.CalcTextWidth(VUMOffset_t, font) + 10;
                gr.FillSolidRect(pos_x - tw, pos_y - th + 0, tw, th, bgcolor);
                gr.GdiDrawText(VUMOffset_t, font, c2, pos_x - tw, pos_y - th, tw, th, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
            }
        }
    }
   
    for (var i = 0; i <= points; i++) {
        twl = gr.CalcTextWidth(db[i], font);
        twr = gr.CalcTextWidth(db[points - 1 - i], font);
        th = gr.CalcTextHeight(db[i], font);
        if (scale_on && i > 0)gr.GdiDrawText( db[i]% 2 == 0 ? db[i] : "" , font, c2, panel_xl + d_offset * i - twl / 2 + (d_offset - d_w), panel_y + panel_h + th / 2, ww, wh);
        if (scale_on && i < points - 1) gr.GdiDrawText( db[points - 1 - i]% 2 == 0 ? db[points - 1 - i] : "" , font, c2, panel_xr + d_offset * i - twr / 2 + (d_offset - d_w), panel_y + panel_h + th / 2, ww, wh);
    }
}

function on_size() {   
    ww = window.Width;   
    wh = window.Height;
    panel_xl = Math.round(ww / 2 - d_offset * points - d_w / 2);
    panel_xr = Math.round(ww / 2 + (d_offset - d_w) + d_w / 2);
    panel_y = Math.round(wh / 2 - panel_h / 2);
}   

function on_mouse_move(x,y) {
    on_mouse = true;
    pos_x = x <= t_width ? t_width : x;
    pos_y = y <= t_height ? t_height : y;
    window.SetCursor(32649);
}

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

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);};         
}
Требуется компонент foo_vis_vumeter
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 10 лет 11 месяцев

Сообщение #880 SergPuh.68 » 25.09.2020, 20:45

kgena_ua, очень эффектно смотрится,ещё бы цвета добавить,было бы вообще супер.
2020-09-25_200016.jpg
:smile:
SergPuh.68 M
Аватара
Откуда: Украина
Репутация: 142
С нами: 5 лет 2 месяца

Пред.След.

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