@d-healey It should be a feature request. Because CSS and traditional LAF both required in many cases.
Posts made by DabDab
-
RE: How to use both Css LAF with Normal Laf together
-
How to use both Css LAF with Normal Laf together
I am trying to mix two laf functions CSS Laf and Normal LAF.
const var Slider_ArcKnob2 = Content.getComponent("Slider_ArcKnob2"); // Local LAF const locl_laf = Content.createLocalLookAndFeel(); // Sliders locl_laf.registerFunction("drawRotarySlider", function(g, obj) { // Text Knobs if (obj.text == "Vol" || obj.text == "Unison") { g.fillAll(obj.itemColour1); var a = obj.area; var val = ""; g.drawAlignedText(Math.round(val) + "" + obj.suffix, [a[0], 0.15*a[3], a[2], a[3]], "centred"); } // Arc Knob else if (obj.text == "Arc_Gain" || obj.text == "Arc_Drive" || obj.text == "Arc_Warmth") { var K = Content.createPath(); var p1 = Content.createPath(); var range = obj.max - obj.min; var startOffset = 2.4; var arcThickness = 0.08; var arcWidth = 1.0 - 2.0 * arcThickness; p1.clear(); var endOffset = -startOffset + 2.0 * startOffset * obj.valueNormalized; var val = ""; var a = obj.area; var w = obj.area; var round = 2; var h = a[3]; // Label Text g.setColour(obj.itemColour1); g.setFont("Oxygen Regular", 15); g.drawAlignedText(obj.text.replace("Arc_", ""), [a[0], a[3]-a[2], a[2], a[3]], "centred"); g.setColour(obj.bgColour); p1.addArc([arcThickness / 2, arcThickness / 2, arcWidth + arcThickness, arcWidth + arcThickness], - startOffset , 2.5); var pathArea = p1.getBounds(obj.area[2]); g.setColour(obj.bgColour); g.drawPath(p1, pathArea, obj.area[2] * arcThickness); K.addArc([arcThickness / 2, arcThickness / 2, arcWidth + arcThickness, arcWidth + arcThickness], -startOffset - 0.08 , endOffset); var pathArea = K.getBounds(obj.area[2]); g.setColour(obj.itemColour2); g.drawPath(K, pathArea, obj.area[2] * arcThickness ); if (obj.hover || obj.clicked) { g.setColour(obj.textColour); g.drawPath(K, pathArea, obj.area[2] * arcThickness ); } g.rotate(endOffset, [obj.area[2] / 2, obj.area[2] / 2]); g.setColour(obj.textColour); g.fillRoundedRectangle([obj.area[2] / 2 - obj.area[2] * 0.04, obj.area[2] / 2 - obj.area[2] * 0.5, obj.area[2] * 0.1, obj.area[2] * 0.13], 0); } }); Slider_ArcKnob2.setLocalLookAndFeel(locl_laf);
I want to change show popup value via CSS Laf. How to do it ?
label { background: red; padding: 3px 10px; margin: 5px; border-radius: 50%; box-shadow: 0px 2px 3px black; }
-
How to Show Value Popup with Script Look And Feel
I have tried
const var s = Content.addKnob("Knob1", 10, 10); s.set("showTextBox", false); s.set("style", "Knob"); s.set("height", 50); s.set("width", 50); const var laf = Content.createLocalLookAndFeel(); const var vp = Content.createPath(); const var ARC_POS = 2.4; /** This function is called from the broadcaster whenever the slider value changes. */ inline function updateSliderPath(component, value) { // We can reuse the same path since it is not stored as reference. */ vp.clear(); vp.startNewSubPath(0.0, 0.0); vp.startNewSubPath(1.0, 1.0); vp.addArc([0.1, 0.1, 0.8, 0.8], -1.0 * ARC_POS, -1.0 * ARC_POS + 0.2 + component.getValueNormalized() * (2.0 * ARC_POS - 0.2)); // We want it to render the "outline" of the arc so we need to transform it to a // stroked path local sp = vp.createStrokedPath(0.2, []); // Now we pass in the stroked path using the "path" conversion type to create a Base64 // string that is stored to the stylesheet of the component. // Note that this must not use laf.setStyleSheetProperty() because that would send the path // to all registered sliders! component.setStyleSheetProperty("valuePath", sp, "path"); } // Now we add the broadcaster and attach it to our slider. const var sliderPathUpdater = Engine.createBroadcaster({ "id": "sliderPathUpdater", "args": ["component", "value"] }); // If you want more sliders, just pass them into this array here sliderPathUpdater.attachToComponentValue(["Knob1"], ""); sliderPathUpdater.addListener(0, "\"update the slider path\"", updateSliderPath); laf.setInlineStyleSheet(" .scriptslider { color: white; vertical-align: bottom; font-size: 0.8em; } /** Draw the circle in the middle. */ .scriptslider::after { content: ''; /** Needs to set to absolute so that the area won't be sliced away from the normal slider area which prevents the text from showing up. */ position: absolute; border-radius: 50%; margin: 15px; background: #555; } /** Draw the value path that we calculated in HISE script. */ .scriptslider::before { content: ''; position: absolute; background-color: #555; /** Use the path from HISE script as background shape. */ background-image: var(--valuePath); margin: 4px; } .scriptslider::before:hover { background: #666; } .scriptslider::before:active { background: linear-gradient(to bottom, #777, #666); } "); s.setLocalLookAndFeel(laf);
From https://docs.hise.dev/ui-components/plugin-components/knob.html
( However I didn't find it on HISE Docs)
But the above example doesn't show Value Popup. How can I do it ? -
RE: ONNX Getting Started Topic Tutorial Snippet Needed
@clevername27 said in ONNX Getting Started Topic Tutorial Snippet Needed:
@DabDab Word. GANs.
Did you mean something like
https://en.wikipedia.org/wiki/Generative_adversarial_network
or
https://www.techtarget.com/searchenterpriseai/definition/generative-adversarial-network-GANBut we need it for HISE as Tutorial for HISE.
-
ONNX Getting Started Topic Tutorial Snippet Needed
ONNX Getting Started Topic Tutorial Snippet Needed.
Please post your ideas, tutorials, snippets how to get start ONNX in HISE.
-
RE: Position Based on MouseCursor
@ulrik said in Position Based on MouseCursor:
@Dan-Korneff I use a similar system with a combination of Broadcaster and getComponentUnderMouse(), you can have a look at that and see if you could use something from it.
The sliderpack in the gif, is inside a panel in the exampleHiseSnippet 1985.3ocsX8taajaDeki21H0lq4Zu1O0OvSnHP9hNcxNtooIv8jk7eNiF6HX4KnGBtdkYWJIhrhbwtbssZa.B5KReUxG5CR6aPeCZmgjZWtqj8kXjSPPZI47meyvYFNKGlHCXooxDuZ0OadLyq1O0ezbgZ5foTtv6n87p8K86eHYHUvhHWPFLkGElvDd8mGSSSYgd0pcqCQRqUecO8m+6W1mFQEArho77dtjGvdJeFWUL6vd+QdTzAzP1Y7YNTucuiBjhAxHYF.qa420KlF7J5D1ITjr078p8i1OjqjIiTTEK0q158kgyGMUdgvP+y4o7WFwvAa5MBDjY5CjQgHhwY8zVxvElepGHkgENiaYbFeh+w7Pd97ENk6pWfTvgq+n1Zkg2sJAuMcgWWG3sBHUyARqafzG6OJHgGqJVAwyOw+HghkLlBtcWnXn0as+Yc+ARfBgpyL5qXGj.Cx4n0C61sMA9YimznwW7E0OaJOkDq2wmROmQnQQDoZJKgDHmEKEfTRIzTRfMXnArckpHmSSHGd5tmr2vcOc+SNirCYgJmvTCVvYqlNzzzpwCYJsVJjuUl6FEMnPmkjXokZ0DEUNOGEhD+hu0H8gQfQVQ9DNPBWPnv2jD5bB6x.Vrhzr+gMaLVlPZEfKWRIaznNeLr.p8VM4gM2f7o6PJaOMpW2n+NwYoSco0Zp8Sjzv.ZJ36s3McJerZOH5n+..z6KlvErNAILH3wg3V+sF0Q47XRSPjDkTFo3wMaCyRSljBy+hbqqMgcN722130nRcjeGpRQCldlL2nNVlkx1+bsOz.71jlvCjAf+5kPdWZSXhTGMtjHCCeJGPn.vXybXQbdbblHPwkhVUA3FM.iBCaBdh4+LQHKQCoqH54qyInEhCy9whEc1W1YGGYgaJAf.yIDzFKBzAxsiJgMSQVTzBxWYzqiTsRAnNgoxRDv35FDoMtNSkmCoL26dFasStOCkOlDpS2aEfxwrQAQGGCyaxqx8ZM3hHHhHeLwg2EvR6HA1GwzFULExJUPxKjlJlajmNeF1bgkSkjD1L.cDHodVi5Qx.ZjgJbmDLcmPZs4qKLgB.WG870KRQx4S625XjLTfY1PMJzTqAGDnPnViyTcQIsPsMAivlo2EBrAd.zQ53BUhLSAdfR.sBHAYW.RsJ0T0IEiH.AJunT7b4.7bDpSrXWpHQLwD0TDeHttfGBCPKF7WF0u.KH0VhchuLAh4ILcLTrPKASYf0A6C4za1oVrsYqDsPeNl4BsdInrtOYwn41QqLavHy732UWxBBdrxxBgqH3+6S1nirNBNyJFptT6eqOuxzy0S+ZsGAcx13BYJWGzW2YGbncxp5Gj78M4VWRtO3T9bxVsqtI.pAVyP0b3o4FpJ129rsaS1tqIDvnwPphpOkLoRMiB.gQkmZhJaomc3okh4zEHVDfYn33A8ARdMjlap5aYCTQd4wI5z3In.Lc+zx7WZmWlkDM+BoLD0xjNig9l.0CkhBOkEnnhIQrVJ3TazleJtQ1GWMsU2MZSdjw1zh8.Id.bHaLMKRAIBatkQfqPivYluxvIVXVmUrCQqiB+Sk3bsnBSnWb.WoXgmA7zBYrM4pvVy.vylvBAn7..MK6f.ulqGp3TCLT+ScpyhEezZYU0edcC6m7ZnRwIRE6YhVZgADPptz3wqbMLuHQFEAG1spkwNYStNFaIxl8RVRanaonLVNgP6ck6Yz+p6Yzsk1.SZpCgRwQBt5YwLwU0nqmM2Fa40hJfTkt6xOx1c4nHNbNmGGZh7191AZDaaSu2+4u9u9Ruqh69YJkTX41NvkaymbtW2v8crbeFEMTj4eru44k3ECA0uIvRB4mWx.FBAwZI8KVZ5MqJ0ecOiTeg+C2tC7Y78we+8CfedvyV43uZeU3itl0WZrm2WezdnRfVysaBvFSLKQww87Z6wNGdMISe9082ik9JkLVSqsHD3OK6qzm2osv636TT26RWu0b2A5Cyxm3s+idSY7ISUtyDKiyhOlIxNRwlA3pkONXyG+XNLdyFNC1ROXK6JdkOnEeKoAQb3Ix8HeEljBu3lioT+pLka6qedSGq3Mm2qvJd6euWYqn2eopU3cTuJmNU0CUEq+L+RME3Yqp4Ui3qeeH3KdZrcZ8oyVT58dXSa4tyHbrIOUEaBrfJ1zanevroei+tPyUpqyt1pjcc6u+xCNF1bGC6MOupg8me+2rxA9csZaAduNPtppPEf7sW358EUA42rDH+l2CPZz10AxqtXmie7DGH1K9CKD0JK8cAhEAwej6LkROetqy7jJH8eGuTn732Yj9qr633c.Qvi6fduvJIqnn36QseGm7evE5au.590BggUcvmrLrq3Sxw8m3h6bu7x2myc8OVFlEQUkudI7N0rK.8OT5Ncv6sQ.cDO28N29fcmSuqP7i8GxUASWMFWaEXDNz6GBLZuot63u+3wPuvE.bc+C9S+vbsbdlV+mbLUkvgHI+SxlMB5ZN.dsbp.eMaL9YMrEGy3t3XzCLhIB0C9evG6hahiqYWbyEK5MiFjH+t.S6M3cAda8L.lD5qAst+w3XRdeL99c6z0aFOj+cAAn4+4vQSqlmstA77fa.OaeC342dC34g2.d9c2.ddz0xCdiv6lojyLoCvDC2W2sWsZ6Kvps5nPu+OzNPwpH
Snippet not working....
-
RE: Vst3 Plugins don't show up
I am having similar problem in mac OSX. AU plugins showing but VST3 for Mac not showing up.
-
RE: HISE Meet Up
@Lindon But it will be late night in India. Already it's 12:30 a.m.
I will see you guys on Mr @d-healey YT channel. Take care. Enjoy. Cheers for the meet up. All the best.
-
RE: Faust node Channel mismatch
@treynterrio said in Faust node Channel mismatch:
processed_left = (parametric_controller(cntrl, envelope, speed, depth) * shift <: transpose(c_samples, c_xfade));
You can write
processed_left = (parametric_controller(cntrl, envelope, speed, depth) * shift <: transpose(c_samples, c_xfade)); process = processed_left,processed_left;
-
RE: HISE Meet Up
@clevername27 Okay so what is the final date and time ?
-
RE: HISE Meet Up
@clevername27 Can you tell me what time will be for India ? I am from India Kolkata West Bengal.
-
RE: HISE Meet Up
@d-healey said in HISE Meet Up:
I can put it on my channel if everyone's okay with that.
I am pretty Okay with it.
-
RE: HISE Meet Up
Please Make it available on Youtube to. For those people who will miss the Online meetup.
-
Simple Gain Pan/balance Range is 10000 | is it a Bug ?
Simple Gain Pan/balance Range is 10000 | is it a Bug ? Or it is an update ? Previously it was +- 100.
Slider Pan Mode automatically sets to -100 to +100.
-
RE: Display ScriptNode Reverb in GUI
@ustk said in Display ScriptNode Reverb in GUI:
@DabDab Or directly steal from Christoph
HiseSnippet 1216.3ocsV8tTaaDD+DX0Fq1zoYl9.bCeRN33HaCA2g1IDLPKSJDOwTRyvvvbV5r0M97cpRmiwsk2g9X0Gk9w7Fzt2IYaYvP.Os5Cf2++a2aucuVwReZRhLFY4bx3HJx5KsaOVnBaFRXBzg6grdj8E6eTqSdOZ2wQjjDZ.xxZ0ePK0pXAj46iubWBmH7oyXgPmJY9zehMfolws0Nulw4GPBnmvFjS6M14PeonojKGBHYUaOTDwuOoG8XhVsUrQ+HIIDY8T65zfZMZP1bi508a7sM72xmzf5WsyVd0HcCp2fFzIXiM2ffr9r8CXJYbaEQQSPVE1UFLtcnbjHM.mxRXc3TMQUTaHxorOPxCzonlKpYHiGzZRIJAAdo0rB1poEruw9HV.aJ+YEtu1H.Oyh7EPqUlGdqNG7plGdd4f2BfjUNHUHEROwtseLKRMShFOeg8gBEMtKANmxCkTcQqDVvtoDzPnpLfzmdPLPL0B2W34UFC+oz1NNvYUhB+ARLNRvweOdhY8nplxAQRAP3tFHas40tunSBn9YKV+WKjcptVoxN3a7c6FT6gZP80Jc97oPtDvOlBGGsHpPWMxgOHIpjPUsfCU0akCULA0s6PguhIEt8J476NE6UoKzT+JN2MsANoRGNz8BN.DknAfl6TgDgh8qCoiBYJpVGsVAwjQlnFUFGoA8txghfDWUHKQS9NVfFRkJi8prIXzUYniI3.fvS.DVJLEQc5DK4t9SR8xPlxGRA3hcJxk9DNNfLPm45ijy7NWGjS0pny6LMFoC5DUptPURX+FchF0tlFNEip3yojXCUTkDEIVcLcT6gcLopWEOc53sXoU0RqlJ0oXWYL1kAQxaaLC+c3Fv+Ve8RNEgxeFTDZwL7ywMp3A1TzPeD3pJQxQtBlwa30M4s1oEmZ4HPwzb8ofW1dJectaRPMavw0lI5RPjFhOaTomWKMdoBFOQPnQ.9YPFVayrvEUgDD7VpuhH5wotmcYY73x3QkwgmqQzUlZFzuESizsa551UNNlbuOlILk4R39o8TlS3lDNuCzq4N+AeZ2QtthikJ5aDtl1Uvm3qKpa2EJKycbZ7BEqmgGeWF5JFNnCMdV2Wphvbp4G9Ye6C+xOa1O8VZNEkhCEL0ahnhaahMJ6pMLnb0LTA+RYFS9UYiIayYAzXDClF941l5Hx.3Y6m96Wht2FW65F+wGfw0Wfw+7g6QTD8j9rbAxuHZrhoKcV6Q+.rmMcteQ68nI8UxHnBOcrGrILMnOdxVAhfxMwz1FZ2PWNKZuemwyHX6XtU.pY8mVHTHk0KToo9KjotN0+E9jkyaID3+XmGhepk2Ohk2O0y4G7nq4matME1iKCFxIp4WtqeBTl.noetMp5slhDlZb9yw+y13eeg3SrawT9gKFiqr.LBsX+efwr2I8X6861EF9MCfErO3WtyGEU39E969Manz018fcAwL3f293gCZCah8o.RDvUA8.HqUzszozdZZc0nMUDXH9G3KSXUMsUlvpSDhFP7ikW3mdMW+prGY3.XRXdAaQ6izz3aLYAgF.OR7Be+4c0MLr1xZX8k0vMVVC2bYM7EKqgasrF13San9M7uZnRNH8JDBcTq8Myisr1WPftQSmK5eAFSsn+B
Okay.. Nice. thank you.. I was not getting the clue how to begin with.
-
RE: Display ScriptNode Reverb in GUI
@orange Oh. It means there is no direct connection with other component like floating tile etc.