Question about UI Json data!
-
I am currently compiling the Linux version of HISE, then I'll check what's the key there :)
-
Ah now I see, these keys somehow interrupt the dragging operation because they do some OS specific functions. That's too bad, not sure how to fix this and the only working modifiers (Shift / Ctrl are already used).
-
Solved it. Just press Ctrl+D and it will duplicate the selection to the current position. No need to hack around the modifier keys...
Funny story: this is nothing new, but I forgot about it because the shortcut was broke like the rest...
-
Hey David, can you check the latest version on Linux (it's on the
juce_5_migration
branch? HISE crashes when loading the simplest project, but I suspect it is something stupid going on in my VirtualBox. -
I'll build it now
-
It seems to crash at a memory copy operation which might be caused by some missing SSE flags that the virtual box can't set because it has to add a CPU emulation layer (long shot, I know).
-
Well I tried opening an existing project and instant crash.
So I created a new project, saved a blank preset, closed and reopened, loaded the preset and no crash.
I then added a sampler with a single sample, closed and reloaded, no crash.
I then added a script to the master container, the only line I put in the script is
Content.makeFrontInterface(500, 200);
. I closed and reloaded and instant crash. -
Hmm, I can't even load a preset with a single sine wave oscillator without a crash.
I'll ask the JUCE guys what could be wrong there.
-
I just tried a project with a single sine oscillator and it crashes for me too.
-
Slider.setPropertiesFromJSON();
is giving me a function not found error -
It is and had always been
Content.setPropertiesFromJSON("Slider", object)
:) -
Aha, the API needs updating, it shows
ScriptSlider.setPropertiesFromJSON( var jsonData)
Using
Content.setPropertiesFromJSON()
doesn't produce an error but it doesn't seem to have any effect on the controls and they no longer show the property overridden by script message, which was displayed when usingSlider.set()
-
Hmm,
- Add a knob called
Knob1
. - Add this line:
Content.setPropertiesFromJSON("Knob1", {"width": 200});
- The Knob should get wider and the property is deactivated (even on Linux).
- Add a knob called
-
You're right! I was using the variable of the component instead of using the component ID. Solved :)
-
I am using the ID instead of the variable almost every time I need to pass in an control as parameter to a function (and I would heavily recommend this paradigm for your own functions). The reason is to avoid reference counting cycles:
// If you would pass the variable instead of the ID: CloseButton.set("parentComponent", parentAsVariable); // and later for some weird reason: parentAsVariable.data.closeButton = CloseButton; // BOOM, Cycling reference & leaking
BTW, the Linux crash is fixed now :)
-
Double clicking on sliders brings up an option to enter a value but I would like not to have this, is there a way to disable it? Also how does one restore a slider to its default value when this behavior is active?
-
I can't change the stepSize of panels in the interface designer. I can set it in the script but it doesn't seem to be working as expected.
-
So double right clicking seems to be the way to restore the default value now. But how can I disable the value input thing? Also I'd like to make use of the value pop-up but I don't want the value to appear on the slider (seems redundant to display it twice and it won't fit on a vertical slider very well), how can I achieve this? I'd also like to use different colours for the background for this pop that the slider uses.
How can I remove the X button from floating tiles?
-
Yes, I will add an option to remove the textbox of the slider. You seem to be the first person ever that is not using the sliders with a custom filmstrip :)
BTW, I was planning to add support for custom paint routines to sliders, which might solve most of the issues you have at once here (and allow even nicer things like displaying the current modulation value for a modulated parameter etc.). Currently you need to use a ScriptPanel and recreate 99% of the slider logic just if you want to customise the appearance.
The
stepSize
property of the ScriptPanel has no influence on the actual step size because this is solely determined by your implementation of the mouse callback where you calculate the value. If you eg. round it to integers, you'll basically havestepSize = 1
and so on. What this property does is to tell the host that the automation data has this step size, so you don't end up automating floating point values when you're control is actually a combobox type thing with discrete entries.I've been running out of colourIds so I've reused the colours from the slider for the value popup, but that may end up looking weird in some scenarios. Another reason for custom paint routines, then you can use your own colours for the slider rendering and just use the native colour ids for the popup.
And the X in the floating panels only appear once in a year under spurious conditions that I wasn't able to reproduce yet, but they will be definitely deactivated in the compiled plugin otherwise people could just delete the whole interface by pressing on the wrong button :)
However if you are using an complex arrangement inside your floating tile using horizontal containers / tabs, the close buttons are intended and can be removed by setting the parent container to read only using theDynamic
property:const var data = { "Type": "VerticalTile", "Dynamic": false, // set this to true to make the close buttons reappear "Content": [ { "Type": "PresetBrowser", "StyleData": { }, "LayoutData": { "Size": -0.5, } }, { "Type": "Keyboard", "LayoutData": { "Size": -0.5, } } ] };
-
Thanks Christoph. It's just a single floating tile so I won't worry too much about the X. Custom paint routines for sliders would be good, currently I'm using native sliders for everything except bidirectional pan sliders.