Custom sliders demo, including the "panning slider"

I keep writing down more things that I have been checking.The use of textures , also drastically affects the change of color of some object.For some reason, textures are a burden, not only when adding or removing an object remove_child / add_child or making visible true / false (both cases are equally fast).This is very noticeable if you have a tool with a large window with multiple objects.

The automatic adjustment of the dimensions of the windows / panels and the change of color go much slower with textures.

You can have thousands of defined objects in LUA, through classes or not and iterating or not. If you do not have the textures enabled, the whole tool goes ultra fast. If you activate the textures, there is a very noticeable problem with lag.which also affects the performance of the Renoise window. If the tool suffers and presents lag, it is also presented by the Renoise window, for example, in the course of playing a song (it also receives lag).Maybe this matter deserves a separate thread.

Is it possible that the API has a problem with the textures or lack of optimization or something strange? The GUI of the window tool should go much more fluid with textures. If you want to build a large window tool, with multiple objects, that is dynamic with constant size changes or live color changes (through sliders, for example), having the textures activated becomes a real problem.

In case there is any doubt, I am talking about: Preferences/Theme: Textures --> (Default, Dotted, Eddged, Jeans, Metal).All textures have the same lag. In case of using large dynamic windows tools, with multiple objects, it is mandatory to deactivate the textures, Textures --> None.

The textures are in the folder …\Renoise 3.1.1\Resources\Skin\Textures.All are of BMP format (70KB, very little).Even Renoise receives a notorious lag every time the textures are loaded.Is it possible that it has to do with the continuous resizing of the textures?If you are changing live colors using sliders, you are also modifying a dimension of the slider.

Have you experienced in depth on this subject?Could not this be optimized so that there was no lag when using textures?Most user themes (skins) use textures.By the way, I really like the look that can be achieved with the textures, but I do not like at all that more than notorious lag.

For those who have a very large screen, and tools with a large window with multiple objects (stylish panels, buttons, sliders, pop-up windows …), it is advisable not to use textures (Renoise 3.1.1 x64).

I think this should be reviewed under the hood of Renoise.Taktik mentioned many months ago that he made an attempt to adapt Renoise for higher resolutions. I consider it imperative to use vectors for the resizing of icons and to eliminate any type of textures added with BMP, PNG format images … I would not mind if Renoise had a flatter aspect if it guarantees that the GUI works more smoothly in 2K resolutions , 4K, etc.

Have you tried the Ableton 10 zoom?Without wishing to compare the DAWs, I honestly believe that Renoise is very improvable in its GUI, and that it has a direct impact on its overall performance. There are still many people who use Renoise with little powerful laptops (low-powered graphics card). It is mandatory not to use textures for a better experience.Well, you could be very clever and say, then turn off the textures. But that is not the issue.

Edit: AppData\Roaming\Renoise\V3.1.1\ Config.xml… (Skin Colors) … None

Does anyone want to have fun?

8000 custom_color_sliders_x3.gif

I can not build a script that is able to control the 3 sliders to behave simultaneously. The behavior should be the same as the “Multi Volumes” tool of Afta8 (an incredible tool), but with 3 sliders.Could someone create a script that controls all 3 sliders simultaneously, regardless of the slider you are scrolling? Each slider must have its notifier free to execute specific functions.

8001 custom_color_sliders_x3_2.gif

I have succeeded in combining the three sliders. But I still have problems in the limits, because when I go over some limit <0 or> 255 the slider loses the distance when I change direction.This is part of the code that is responsible for synchronizing them:

---
pht_clr_nte_off_variance = 0
pht_clr_nte_off_sliders_x3 = {}
---
function pht_clr_nte_off_sel_last()
  pht_clr_nte_off_sliders_x3 = { vws.PHT_CLR_NTE_OFF_SLR_R.value, vws.PHT_CLR_NTE_OFF_SLR_G.value, vws.PHT_CLR_NTE_OFF_SLR_B.value }
end
---
function phr_clr_nte_off_sel_update_x3( value, rgb )
  if ( pht_clr_nte_off_anchor == true ) then
    if ( pht_clr_nte_off_sliders_x3[2] - pht_clr_nte_off_variance >= 0 ) and ( pht_clr_nte_off_sliders_x3[2] - pht_clr_nte_off_variance <= 255 ) then
      if ( vws.PHT_CLR_NTE_OFF_SLR_G.value ~= pht_clr_nte_off_sliders_x3[2] - pht_clr_nte_off_variance ) then
        vws.PHT_CLR_NTE_OFF_SLR_G.value = pht_clr_nte_off_sliders_x3[2] - pht_clr_nte_off_variance
        print("G")
      end   
    end
    if ( pht_clr_nte_off_sliders_x3[3] - pht_clr_nte_off_variance >= 0 ) and ( pht_clr_nte_off_sliders_x3[3] - pht_clr_nte_off_variance <= 255 ) then
      if ( vws.PHT_CLR_NTE_OFF_SLR_B.value ~= pht_clr_nte_off_sliders_x3[3] - pht_clr_nte_off_variance ) then
        vws.PHT_CLR_NTE_OFF_SLR_B.value = pht_clr_nte_off_sliders_x3[3] - pht_clr_nte_off_variance
        print("B")
      end
    end
    if ( pht_clr_nte_off_sliders_x3[1] - pht_clr_nte_off_variance >= 0 ) and ( pht_clr_nte_off_sliders_x3[1] - pht_clr_nte_off_variance <= 255 ) then
      if ( vws.PHT_CLR_NTE_OFF_SLR_R.value ~= pht_clr_nte_off_sliders_x3[1] - pht_clr_nte_off_variance ) then
        vws.PHT_CLR_NTE_OFF_SLR_R.value = pht_clr_nte_off_sliders_x3[1] - pht_clr_nte_off_variance
        print("R")
      end
    end
    pht_clr_nte_off_sel_last()
    if ( pht_clr_nte_off_variance ~= pht_clr_nte_off_sliders_x3[rgb] - value ) then
      pht_clr_nte_off_variance = pht_clr_nte_off_sliders_x3[rgb] - value
      print("pht_clr_nte_off_variance",pht_clr_nte_off_variance )
    end
  end
end
---

I use an empty table to store the initial values of the 3 sliders. And a custom checkbox that also executes the update of said table.The problem I had was to set the initial values first, and get the change value to add / subtract each slider equally.The result is acceptable, but not perfect. I would like the sliders to “ignore” the limits, so that when they change direction, they do not lose the distance between them.