HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. It_Used
    • Profile
    • Following 1
    • Followers 0
    • Topics 19
    • Posts 119
    • Groups 0

    It_Used

    @It_Used

    Steinway & Sons

    25
    Reputation
    20
    Profile views
    119
    Posts
    0
    Followers
    1
    Following
    Joined
    Last Online
    Age 21
    Website t.me/MiDi_CC64
    Location Russian, Siberia

    It_Used Unfollow Follow

    Best posts made by It_Used

    • VSL Velocity Histogram

      Hello, i created velocity histogram looks like VSL, maybe it will be useful to someone.
      This is a not ideal version based on 128 sliders (i know that need uses sliderpack for more effiency). I want update this in the future.
      Feedback on the quality of the code, suggestions for improvements, and reviews are most important to me. ❤️

      Screenshot:

      e952b42f-cf14-4b2a-9211-b2c273508403-image.png

      Snippet:

      HiseSnippet 3779.3oc6ctscaabEFFzxzITI1wIMM8bJpZZBUrBMAHAOj3DaKIKa0HYqZ43C00McD4PRDCAvB.JaEW2ld3p9lzWm9hzz66Z0tGfM3AQJGq8t9lnQQNKxYlMlM9mu4vOEzRaEFzRFEEDZja9aseeoQtWM+166G2akdBWei0W0H2YxuoHJVFZlVzx62WDEIaajK2bWUUPtBmzH4qu9hKK7D9sjiJxv31Atsja3tqa7nR25Repqm2Zh1xa4t6Xst5kVuUf+JAdACf7Yt7kM5KZ8PQW40Eplch7FWSD0yH26mW1tS8xsrDssKKqWGdSMKmNxcpVUZUuS8c1oovtZCQCKibm5JsciCB2NVDKiLxcxkCZu+18BdjeZGba2H2c7jp2XYrMzyoEuVfWa0snpTiU5450dqLgJx.tJaMR1lKU1dy7a511cX4ijuylTg4nHFW.ychISu4lH8rFO8JOV5MiTJ2XozISSoWO+1sBc6GOpFU9jOeTqIShzVYbh+0Yye9yattuabo48AEOBTeo4skdWyMJNX9mL+7Ef5WU1xSDJM6oJrqX24K.iYQwl6IBM666AMOnka79IwzMTrq4GatRferzOtjnc6sD9RuhKLqFtvRlkguW7iluvrptTjLt3BOxscbOnkV1MLOmoEzZSHmNmiYmvfcM8jchM2IHrsLbogEF51sWVokdVW6dRUKgKdkjjXh61HOWH7n4KntM2ChGtst+CR5bkf4J7b+Roob29w6aJBCE6WJsoQwhv39AQ2EZuSRy2VUhITDDUf+cMK5z+wKdfVeuCo02ahVeGnUVIs5NJUwrn0n5tFTmc4jJuVxs0vZ6DDZVzEpFp007BJkDdw4N2hlic6pjW7VFB4IyWnf5d99tOXxQyO0OXmhKnpZAXzvcowtcm3s2SomYWhIGHuyzUMbb3ZSWWT79dRnpEtsLL1skvagoaytt9KffzApP7XE5zXVWVY+sgQPUbkJW1ZFs.lTdK4iiWNPcM5H7hjynQsBC77tSOoz6vajzW.SoUKJrgTD5+LtZR+12V3MPdC+UCEceFMDxsjFtUP+A8Upy0ClktDLHRtszWwR6A3uRKJCeMcK2KcYmCqGS5qhIw8T07jChTNi.pMEOTN9zRyvfA9vRqSRUiO7nlW6Z99pK34gACmEmtarrqLC1MoqFex92beY0v7CLU+Ctref5pMryd57yCWxsfEwgYep0rFeIwjEwRpy0uKrtX5RE3TUrXnSyV4rzgsjSxk3lACf1KK1YfeK0b7hcWLMeguGaFIrZMDpvOYgVWEAolYlLWekfPeXhpheSV2.KV.uIFVktTWY7FAvTkkUxQTQmEyZw18DsCdTeAr1wno0sBkvdQaAEVLogiZjZF+MSkzaJaA4RWOYQwRi2+IQfIdn3QlQIAmjocKsirqq+Fh8kgEGgUcK0FZ3pgA8S6n0fkrS57Q86RlIch5TAQkdjabuK60umnX4GWN4K0TVamEWxzdIy6qd2CvKrneeu8gyt7vCdshCGj04vTrzL5fYd2cRSZXXJsqKNqLXkqn9ujLn7h3krCb1linLsGRGl9C1cGnMlB+1ld.UDUBtzOG4wDJAlGPDqAioEW3lhuncOguqZx0XZtZ0rhKTFJ89NvTg5KYBe23Aika1Uew121US5bXBuMlAVkGlBGhPNr4pVCeW6AKkrJwnr1o1K1r1oVVV6T6Hk0plenYciluXy5FMyx5FMORYsp4GZVaU9EbZCcPVdCuDSb6mqDOo8Sm4OM4rcv56iVOWM8ac+1vwIfihugnyvkzWIYsPSOQGyfc9B3xWZ7S6pVSGZ8TqclrX6FAAO7x9sWCNJPxZKXiKEBKBpbSsV1x8KntY2.lqKB2N4DWpccGtWvRpNF2P3nszzHM24Yuzz8gdnDrEi39kAUp3v2U4AvFv1Kp1cTU1dpM8yJAtnIYVZKsg3r.EeXyf2Obyu6.wXMtzO0wEF1T03PIOoe23doaqO0F2SIsnrlts8DCpY1KCGNZlsUZrpzIFIyZKjSWwG1jRhijIweijQ9hSYInCDznUtcy3mgCdPO35qVDeXII8yPPqHd6kHG6AWfjKFTXRoEb6.kp16N8zVKZdAPvT0lVcg8JoRfUB1sefOvdoaoBaB5jddNUCl7nZETGroPAIzLyot3exAt1CCchVoF3KaWVc5rIJGlrs3nt3o340FdlnLAe3PRorWo5mjRVQ34sCX1ezwfRUmTrWUapdm7+loVW3.haFuMqNUkUIkUzVIMoG16pxXS+f3Qiokl+fievs70gVjcXNHGgTzSwjlJddSvksnqLQYF1D0AKgzHChmbPScRDXtiJOSFRvFM9.CLpa9tuq4Lp5BiWX5QZWb5oL3v3zgeNyJ3ocUHQZbgx3Ag9oSl9n4OvWCkg.ekJbC0XzSvEJUCPcOn.N9vyTRmR1O3UrSmTIEpxbr5TKupLVoNl1LpNcj7YDXwziUsjYxhSCanQtSN4m9R9C+SeY7ObnVoq1OVCC7UeH.2nuz+v9HiLvsHLLx8UXVAMMN4yo4L3mSS5x+FtsMx8R4UZXYijD1HWgSk8woY7bGrEmfs4DbENAWkSvNbBtFmfqyI3FbBtIsfe4THoLqnsXEsMqnqvJ5prh1gUz0XEccVQ2fUzrXMaVrlMKVylEqYyh0rYwZ1rXMaVrlMKVylEqYyh0pvh0pvh0pvh0pvh0pvh0pvh0pvh0pvh0pvh0pvh0pxh0pxh0pxh0pxh0pxh0pxh0pxh0pxh0pxh0pxh0bXwZNrXMGVrlCKVygEq4vh0bXwZNrXMGVrlCKVqFKVqFKVqFKVqFKVqFKVqFKVqFKVqFKVqFKVqFKVqNKVqNKVqNKVqNKVqNKVqNKVqNKVqNKVqNKVqNKVqAKVqAKVqAKVqAKVqAKVqAKVqAKVqAKVqAKVqAKVqIKVqIKVqIKVqIKVqIKVqIKVqIKVqIKVqIKVqIQVq.9Y4VlW3V7B2lW3U3EdUdg6vK7Z7BuNuvavKbdTmEOpyhG0Ywi5r3QcV7nNKdTmEOpyhG0Ywi5r3Qc17nNadTmMOpylG0Yyi5r4Qc17ntY9yT3yVeUQrP8aw.9iIeqvf9pGva0OU9bqJ2yskL82ogB4WUF8v3f9IsEeLJLxcpzt8zY+FOnd.cS502J+rd3aMdrQt74T879YuH44QWkT+cLmReJzUk71XIpex8C6wy9M9ytOoOxm0GpWj7vqaja97YO75FYO24peGX9O+i+8+byc15h6Jd7nekXLuzvDK2TI1ahkL1yld1syXOI5YEcfm67gsbxmx7rhO3CKtp+N66k1e8EgfFLlXbHp7dYO+DoWRiif7YkJemho78NGSkO6T46kXJekOlJeURkuWlo78gGSkupoxWAlx2pGSkOmT4adpx2odCTaNdJe0RkuWQKejju5ox2qpkORxWiT46zZ4ij70LU9NiV9Nhx2vmmyj6kWSqezzOz2wY05GM8CMd75Z8il9gNOdCs9QS+PqGeGs9QS+PuGuoV+noen4iu62F0uCnKOux4QR+P2Gukl+nwen8iumV+noen+iuuV+Hoe1n+iefV+noen+iend+CR6eXi9O9QZ9iF+g9O9wZ9iF+g9O9IZ9iF+g9Odas9QS+P+G+T87WZyeQ+GlZ9iF+g9O9YZ9iF+g9OVPyej3uJn+ietl+HweUP+Guil+nwen+iegV+noen+i2UqezzOz+w6o0OZ5G5+nnd+CZ6ef9OVTyez3Oz+w6q0OZ5G5+3bZ8il9g9OVRqejzupn+iOPqezzOz+QIs9QS+P+GmWqezzOz+QYs9QS+P+GVZ8il9g9Or05GM8C8eTQ6eij+spn+ipZ9iF+g9Obz5GM8C8eTSqejzOGz+Qcs9QS+P+GMz6ePZ+CGz+QSM+Qi+P+Genl+nwen+iORyez3Oz+wEz5GM8C8e7w54uzl+h9O9DM+Qi+P+GWTyez3Oz+wkz7GI9qF5+3xZ9iD+UC8errl+nwen+iUz5GM8C8erpV+noen+iqn0OZ5G5+XMs9QS+P+GWUqezzOz+w0z5GM8C8ertV+noen+ieo97yjN+bcz+wmp4OR7Wcz+wFZ8il9g9O1TqezzOz+w005GM8C8ebC89Gz1+.8erkl+nwen+iekl+nwen+iap4OZ7G5+Xas9QS+P+G2RO+kz72Fn+iOSyej3uFn+iaq4OZ7G5+3NZ9iF+g9Otql+nwen+i6o4OZ7G5+3Wq0OZ5G5+3954uzl+h9O9MZ9iF+g9Odfl+nwen+ieql+HweMQ+GetV+noen+iemV+noen+CgV+noen+icz6ePZ+iln+iVZ9iF+g9OZq0OZ5G5+Pp0OZ5G5+niV+noen+itZ8il9g9O5o2+8Ht+K9m28xnADWM.dDAvLADcf7EZAjn.hVPdnV.IJfnGDOs.RT.QSH6p2Dg3lHnKDeMARj.QaHAZBjHAh9P5qIPhDHZD42qEPhBH5DITOEl1T3r+TnGoIPZDX1eKzi0DHQBDchLPSfDIPzIxdZBjHAhNQdjl.IRfnSjGqEPhBH5DYe8TXhSgQmHeol.IRfnSjmnIPhDH5D4OnIPZDX1eTzepV.IJfnSj+nV.IJfnSj+jV.IJfnSjuhr.9ZGyEPzIxelr.dli4BH5D4uPV.O8wbADch7WIKfu5wbADch72HKfux29NH8VgAsjQQAgF4N4sRDvyleyf1C7DwAgqzS35ar9ppBuJ7RrB2.eik2uuHJRBpat4V2ONIoTIzISSmu9h4NwUZ6BWisiEwxHibysbP682FTE3tbt7VF2NKgmKeYisC7BRekwJ8b8ZOLqTe32Omo3qmeK23V8lcNdhYjiFFuPxw4RywSm+Jc5HaEOJAOY90t6D51++59aFLH10u6lh3PWEuc8A6tcvfvVRn288kdQJt3Dp4KouubFm.zT6j27eguvJsTuOGVoUVkF6J.98yaE3GCXLzo4d4jRfbxWrqZ1R9MUu2zxXOE5NtNuK.3edqVSdolJPapAVgZfUoFnC0.qQMv5TCrw2bfp0et7f3fcSm1XXr4VWYUQr.Xzqjr.UBsZ7+.J9soE
      

      Code:

      // Init.
      namespace VelHisto
      {
      
      	// Declare histogam
      	const var pnlVelocityHistogram = Content.addPanel("pnlVelocityHistogram", 0, 0);
      	pnlVelocityHistogram.set("width", 128 + 10); // +5 from left border, +5 from right border.
      	pnlVelocityHistogram.set("height", 30);
      	
      	// Declare sliders
      	var velo = []; // Initialize empty array.
      	var startposX = 5; // Start positionX (5px).
      	var startposY = 5; // Start positionY (5px).
      	var W = 1; // Width (1px).
      	var H = 20; // Height (1px).
      	for (i = 0; i < 128; i++) // Declare 128 sliders.
      	{
      		velo[i] = Content.addKnob("velo" + i, startposX + i, startposY);
      		velo[i].set("width", W);
      		velo[i].set("height", H);
      		velo[i].set("style", "Vertical");
      		velo[i].set("min", 0);
      		velo[i].set("max", 18);
      		velo[i].set("stepSize", 0.001);
      		velo[i].set("showTextBox", false);
      		velo[i].set("scrollWheel", false);
      		velo[i].set("enableMidiLearn", false);
      		velo[i].set("sendValueOnDrag", false);
      		velo[i].set("showValuePopup", "No");
      		velo[i].set("mouseSensitivity", 10000);
      		velo[i].set("visible", false);
      		velo[i].setValue(0);
      	}
      	
      	for (i = 0; i < 5; i++) // Make left border rounded.
      	{
      		velo[i].set("max", 8 + i * (i / 0.5));
      	}
      	
      	for (i = 123; i < 128; i++) // Make right border rounded.
      	{
      		velo[i].set("max", 18 - 8 - (i - 128));
      	}
      	
      }
      
      // Paint panel.
      namespace PanelPainting
      {
      	
      	// Start painting.
      	VelHisto.pnlVelocityHistogram.setPaintRoutine(function(g)
      	{
      		
      		// Declare assistant variables.
      		var CornersSize = 5;
      		var a = this.getLocalBounds(5);
      		var Shadowpath = Content.createPath();
      		Shadowpath.addRoundedRectangle(a, CornersSize);
      		
      		// Draw shadows.
      		g.beginLayer(false);
      		g.drawDropShadowFromPath(Shadowpath, a, Colours.withAlpha(0x000000, 0.25), 2, [0, 0]);
      		g.applyMask(Shadowpath, a, true);
      		g.endLayer();
      		
      		// Draw gb.
      		g.setColour(Colours.withAlpha(0xCECECE, 0.20));
      		g.fillRoundedRectangle(a, CornersSize);
      		
      		// Draw velocity numbers and lines. 0.
      		g.setColour(Colours.withAlpha(0x000000, 0.25));
      		g.setFont("Rajdhani", 8);
      		g.drawText("0", [5, 17, 7, 8]);
      		
      		// 24.
      		g.setColour(Colours.withAlpha(0x000000, 0.25));
      		g.setFont("Rajdhani", 8);
      		g.drawText("24", [5 + 25, 17, 10, 8]);
      		g.fillRoundedRectangle([5 + 25, 7, 1, 16], 0.5);
      		
      		// 56.
      		g.setColour(Colours.withAlpha(0x000000, 0.25));
      		g.setFont("Rajdhani", 8);
      		g.drawText("56", [5 + 56, 17, 10, 8]);
      		g.fillRoundedRectangle([5 + 56, 7, 1, 16], 0.5);
      		
      		// 89.
      		g.setColour(Colours.withAlpha(0x000000, 0.25));
      		g.setFont("Rajdhani", 8);
      		g.drawText("89", [5 + 89, 17, 10, 8]);
      		g.fillRoundedRectangle([5 + 89, 7, 1, 16], 0.5);
      		
      		// 109.
      		g.setColour(Colours.withAlpha(0x000000, 0.25));
      		g.setFont("Rajdhani", 8);
      		g.drawText("109", [5 + 109, 17, 12, 8]);
      		g.fillRoundedRectangle([5 + 109, 7, 1, 16], 0.5);
      	});
      	
      }
      
      namespace veloIndicatorLaf
      {
      	
      	// Create laf object.
      	const var VeloLaf = Content.createLocalLookAndFeel();
      	VeloLaf.registerFunction("drawLinearSlider", function(g, obj)
      	{
      		// Draw gb.
      		g.setColour(Colours.withAlpha(0x000000, 0.50));
      		g.fillRoundedRectangle([obj.area[0], (obj.area[3] / 2) - (obj.value / 2) - 0.5, obj.area[2], 1 + obj.value], VelHisto.W / 1.5);
      	});
      	
      	for (i = 0; i < VelHisto.velo.length; i++)
      	{
      		velo[i].setLocalLookAndFeel(VeloLaf);
      	}
      }
      
      namespace FadeTimer
      {
      	
      	// Declare timer.
      	const var FadeTime = Engine.createTimerObject();
      	
      	// Declare fade velocity indicator function.
      	inline function FadeIndicator()
      	{
      		for (v in velo)
      		{
      			if (v.getValue() <= 0)
      			{
      				v.fadeComponent(false, 250);
      				v.setValue(0);
      			}
      			else if (v.getValue() > 0)
      			{
      				v.setValue(v.getValue() - 0.020 * (v.getValue() + 1));
      			}
      		}
      	}
      	
      	// Start timer.
      	FadeTimer.FadeTime.setTimerCallback(function()
      	{
      	
      		// Call fade fade indicator function.
      		FadeIndicator();
      	});
      	FadeTimer.FadeTime.startTimer(20);
      }
      
      // Get note velocity.
      inline function getNoteVelocity()
      {
      	local i = Message.getVelocity() - 1;
      	velo[i].fadeComponent(true, 1);
      	if (velo[i].getValue() >= 0 && velo[i].getValue() < velo[i].get("max"))
      	{
      		velo[i].setValue(velo[i].getValue() + 3);
      	}
      	else
      	{
      		return;
      	}
      };
      
      
      function onNoteOn()
      {	
      	// Call get note velocity function.
      	getNoteVelocity();
      }
      function onNoteOff()
      {
      	
      }
       function onController()
      {
      	
      }
       function onTimer()
      {
      	
      }
       function onControl(number, value)
      {
      	
      }
      
      posted in Presets / Scripts / Ideas
      It_UsedI
      It_Used
    • RE: Few questions from a newbie

      @ScreamingWaves said in Few questions from a newbie:

      @d-healey i would start simpler as well, but that's what i need at the moment for a school project, and i have 5 months time to finish it. Would it be that hard for a newbie?

      If you have such a small amount of time, then don't waste it creating a plugin without scripts, because you'll probably do it quickly without revealing your full idea, so learn programming, at least from the same videos from David Healey, he explains it perfectly, I only know two languages, it's Russian and Serbian, but even with the language barrier, I understand what he means. And I have experience using Hise/in programming - only a month, or even less. But I can already do many things that I couldn't before, and I'm proud of this result. Of course, this is mostly due to the participants of the forum, David, and all those who helped me, I am pleased with the fact that it works.

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Hise won't open on Windows 10

      @bendurso I had this on Win 11, and after clearing AppData path (Use Win + R, paste and run it) %AppData% delete folders HISE or HISE.exe.
      You will lose the settings, but Hise will start running.

      posted in General Questions
      It_UsedI
      It_Used
    • RE: Display slider value with custom font, size, and position

      @Yinxi get resault.

      Update:

      • Changed visibible values after comma/dot for knob and label (from 1 to 2).
      • Some comments have a more nfo.
        4bca0896-7e9f-4adf-ada0-b70a75b8bd99-image.png

      Snippet (Copy and paste in Hise by shortcut Ctrl + Shift + V):

      HiseSnippet 1757.3oc0W0saaaCEVJIpK1XsncqO.DFX.xCdpxw4mlELrzDmz40lFi5ztsqJnknh4hDofDUR7Jx6VtbW0mkcytt6PRoHYGmzrrshUiDXyCOGxuy+G1Og6QRS4IFl0OXbLwv7ysFLlIFs8HLkYzqqg48r1CmJHIHMosFGiSSI9Flly+TIAyZKXn97Ge+V3PLyiTRxv30bpG44zHpnjZ+MeFMLbWrO4.ZTEtWdyddb117PdFfm4sbMhwdGgOj7Brjs4rL9Ab5HCyu1psWvJsWcIuNsW0a0.+0Wcs06r7vgAqE3hwqgWY3Zq7308bcMLuyN9TAOYf.KHovgtE2e7fQ7SX5K30zT5vPhbQaiAvMqIar8HZne+BiSpgg4B8KMUyqMUOzZOpO8B5klr6q1.UJQUil4bWGjZWERtWOjLq.oEzP5AVC7Rnwhxcj34KyoVhn1S.I8tFy8UKZ8nGg1CeDA8pdN02lyDDlvIBHraBrnGrNI.6QrWw0sEpsqayMpWGDoKwKDmPPQ5HEOok.QBBHdBjc.OAQNEGEGRZ5TG7voBzw3DjL5A8cHU3lygDwNJ9saHo2XpC9PIuGw3CAfgj3JgGFRRJNtiXCyOsBLi88eFvtci7sZzBsjq7+7Cd.QT4PiS3wjDAkjVp0oDoULmLn9Q+3f8eQ0y6s0aH.idiuE0Pa.GDR8IIMZUuA0WR8BVq23TXMb+0aLt3GohwgJYkvTxRD02OjzmmRETNC14aZujilSR7.5uoX10wsMb0fBbvHZJJFm.oFJSt1ljhXYQCIIoHbflbTD9Q9bQKDM.Mlmg.0BIlTVAG45zFgY9nSRnBBbyq6rbavIElAK.1ILDXpfuQ7Lg5X.+klMWjs56lZ1cjJhF8ttJ3GgkJu92oYAAT4xFZknmFSLBwGERYDHpveqV4nXDAb79a4f5xQLtPFUwNjncXQbeRKsd.+4gYngDDNNNbLBCG2gXA8XRQDnL.LMhyEiXPvuTMhbPuJkfzvAYmqaPjs.QExSLlmJfsf30F.tNh3e.WiZPGfT0WKU0973rXI0sHg7SJ15.xohs3RcL.GlR.pDFFxmkUDdNnfrhcNapPbs01mlFGhGiBwCIgEg2gCCU2XWXyIiwetjM6FUYPEoOcn9LNbYjffxN7CGxO0oeo3dEHJC6yXTFDCiCoP4EIYAXRjg.ZWdtsNSjAJ8TQh4NRsm1GMbLRbBAeTYlpSQpzD4RA.9k8Hj29Kw+pOHNc1YISd9R4bzhmmfAQxt2.ASAUCwCJN.BTPW5iq3zyh8gx66f8F8LhDmhjLRtoP2fCns7Rq2dsk6rbmGe1UVtyCGFND5B5TmxjYHfgi4IKPf3r75K4kCsgb8XNC7iszt6l0ea8Z0qkGAn84x62AYuOSVYHlFBIQwgYGB2Vp.mHxh0djKtj7TpLAOBRojfY7EUR7ySKSHflJK.4qpbkBIM0pFxHCqr0AAsP6vfKi33yy.60A7AhDHDzVgWHjsYyMjF+YxjtJgLWNuVG5XcmxqpjWQIKccIzITwHY0KHA+Dhp9kRUU6BkqVCJko9r9JcVE7JK4Tw3o7G402pIs4Rc5IB.WCyDDa2BK9FfLmswE4SvkrcgSoryQSov4Nssycu1S6MatQEG8K3Bx9LasC8r5no2JHXl6U1mblaKG9J45DzVaXmHbBXDF1XxIXrt5IXpNTkm1pTgQNqGToX+XR95KOiiQtoTNsSNp.VEpYctmU01tFTXTlZV4VQCEjyGs77+bTmyMdUutXAt3ffyrrTGPqK4XXPU8PT0r5RRORvigYNuv+ACHeCt1SgE24g4y9Nt5hIauWNzq84QUGh9WNG5WVc.5Ia2XX9YVp1MFU50.d.SIqS0nofrwk0g6ZUoxsREtmU0TVsd76yROJqfIo9t28t2KoVTAFtAqhJvFE0UKUmNaVTpr.bSTmTRzL+NLLWzROGB7fgKMmKLgM2OKDKlbraoOHeCoQt5LtxYWYfweb0Gr7u1r32TH9.q9Tg2nYiw4lAFg30+KvX9KXtqkdn6R.tf0t+7Ggmqr3EO1jJeWvSKt96nbgW0iLUIxcIvHLUMP+D0WLpRFzly3Yn8XGCo584P20oMuyei0u+FuP75iATuU4eRb5B2Lmvt7Pe4odE0Vug38KrTl7Ok.rJj3SG.eeq93+ODP7RX9HXRq8vvfMxtJuHKZ.Tn2i.PkwHgxd8lyI6nnW6VTEe.g4qV7d3S9lsKplK2rcwleTtiHrWB+MEOIFRMWTQAzalpGUMq8jqQsmXLgh1zz234M4QcIAW51JXmaqfKeaEbkaqfqdaEbsaqfO9CKnb3lmj+ZDHOwvXu96nFqyzbG0zOpTFi+BXhPCHN
      

      Code:

      // Make UI.
      Content.makeFrontInterface(500, 100);
      
      // Declare master chain effect (for example).
      const var Gain = Synth.getEffect("Gain");
      
      // Declare gain knob UI Controller.
      const knbGain = Content.addKnob("knbGain", 20, 20);
      
      // Set gain knob properties.
      Content.setPropertiesFromJSON("knbGain", {
      "type": "ScriptSlider",
      "id": "knbGain",
      "x": 20,
      "y": 20,
      "style": "Knob",
      "middlePosition": -12.0,
      "stepSize": "0.01", // This parameter controls numbers after comma/dot, if you set this parameter to 0.1 and write -19.41 value - then in the out you get -19.40 (-19.4) value.
      "min": -100.0,
      "max": 0.0,
      "suffix": "", // If you need linear dB, write here dB. Do not change knob mode, this is can be apply a negative effect for smoothness them. Use suffix (in the fact it is postfix).
      "linkedTo": "",
      "showValuePopup": "Below",
      "showTextBox": false,
      "enableMidiLearn": false});
      
      // Declare value display label.
      const lblValueDisp = Content.addLabel("lblValueDisp", 200, 20);
      
      // Set value display label settings.
      Content.setPropertiesFromJSON("lblValueDisp", {
      "type": "ScriptLabel",
      "id": "uninitialised",
      "text": 0, // In the future this parameter can be changed by tweak gain knob.
      "x": 200,
      "y": 20,
      "fontName": "Rajdhani", // This parameter can be changed font.
      "fontSize": 19.0, // This parameter can be changed sise of font.
      "editable": false,
      "updateEachKey": true,
      "textColour": 4291743438});
      
      // Declare gain knob callback.
      inline function onknbGainControl(component, value)
      {
      	
      	// Set label text. (On compile, plugin startup this function apply automatically, if you do not create conditions).
      	lblValueDisp.set("text", Engine.doubleToString(value, 2)); // Engine.doubleToString need for control visible numbers after comma/dot in the value. without it we get this value: -7.400000095367432.
      	
      	// Set gain value.
      	Gain.setAttribute(0, value);
      	
      };
      Content.getComponent("knbGain").setControlCallback(onknbGainControl);
      
      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Display slider value with custom font, size, and position

      @Yinxi create visual mockup your idea, and i maybe implement this!

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: How to control loaded samples with preset.

      @d-healey oh shit this work... How did I not come up with such a simple solution? 🤣
      Thanks again! 💕

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Few questions from a newbie

      @ScreamingWaves said in Few questions from a newbie:

      Но просто из любопытства: сколько времени потребуется эксперту, чтобы разработать что-то подобное?
      15 каналов, по сотне сэмплов в каждом. Чтобы загрузить и скомпоновать их на семплере TX16Wx, мне потребовалось 4-6 часов. А как насчёт того, чтобы сделать то же самое на HISE и сделать из этого новый плагин? Вот эту часть задачи я пока не могу понять.

      Advice (Soft):
      Channels split - Adobe Audition/Cockos Reaper. (10-30 min) (i have script for creating sampling template into reaper project).
      Auto mapping by sfz - sfz tools, or Manually write sfz with NotePad++, (1-3 h). Or Use Hise sample mapper (5-10 min). as I understand it, the idea is to create a vst based on Hise anyway, so the skills of using the built-in sample mapper will not be superfluous.
      And, the amount of time I wrote about can be spent even by a novice, the main thing is to get past the feeling when software new for you, and then the process will be more or less focused on specific actions to get a specific result, and when this feeling of novelty appears, then you spread through all functions trying to find the one you need. This is where most of the time is spent.

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Few questions from a newbie

      @ScreamingWaves I think it will work, but I can't know in advance.
      I use this naming format:
      Mic1¹_21²_3³ [A-1]⁴.wav
      (You can use many of your custom separators into sample mapper).

      1. Mic position.
      2. Key (numberic type).
      3. Fixed velocity value.
      4. Key (string type).
      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Hise can't save hr file with hxi metadata.

      @d-healey yeah

      posted in Bug Reports
      It_UsedI
      It_Used
    • VU Meter.

      Hello i create a VU meter, maybe this someone is can be needed. 💕

      Screenshots:

      43cc2ba2-0bf0-4f54-898a-2276145fdc96-image.png
      fa90902a-ca67-47be-a25a-64e97d66a57d-image.png

      Snippet:

      HiseSnippet 1929.3oc4Z80aaibDmz1zHRsoMWa.t93B2WjupSgT9e5P+y4DaqbF0JVPxIoEAAGVQtRbuPsq.4J63FDf9Xet.849goeQ5Gg6aP6LKIMIkoUT7YmKoUA9O6LyN6r+lYmcmwoanzkEEICMLqdx4SXFl+Tq9mKT964S4BiC22v7tVcnQJVH46+m+8+gwiNeBMJh4YXZt7iQQLqrhg9y2+0OhFPEtrLRFFOSxcYGwGyUYT6t6ejGDzl5wNgONmzat6gtRwdx.4TvbV1x1XB08UzQrmPQwVxx3anQ9FlegEya3N1tNTul1rc1AFrsyVCYC1bSlyNC2Yvfuh1byVzVNFlqdfGWIC6qnJVDnzGI8Nuuu7LQ7B7LdDeP.CG3XzGV4XxF64yC75lhMQFFlVcyPpkiQp6a0g6wufdFhcOMCR1LxCZlKMOSxIuIYOeSxLmIsRrI8YV8cC4STYbP64WlPMyhbJXRwbMVh8ysdvCHGJ3pFU2SJTLgpwX5qXsCgAGBiCGRcY0ZYaWmrss85+1pUA4e1SIcXX7gGyMfFRUbonQUA3yh.+GC3qYW8MUqTsBH+9ZwXWLuFUq.t8HE4TZHYhHHQdxumjZCTOutTAKn1ZYrWqNooM9EXEUxH2Hhops1YbOkOHgiy1kw1mwG4q.9arExt5aKtOl.9QEWLp3lnKRMaSDROCHB1dplKtHZo6ImB5gUa3TgKhJ0Fsd0JfF.UjGH.+.ORQEZDfSAmeDn2JHbPATP4yiZLhoNR5RCdjbpvKpl1t0RrWe9egARsUJg99TO4YcoJ+bHnaHCh1Ph0zyLSHDb6gJk40i4BVwn.VMZ8X8pkMwXwMbjdZZqaTCOfx9gxIw5BhQFq0elpqSP8nONG03Ltx+gAS7o0ress9SchcilasN3CqSdAN5kytbCFEuR.dFqlZkos8N.+mVa1qqUwnFCgDLK7t5Hx3j3v24Z0V+AWqsl+Z8hsH+FxF0II+nChzg.KVsCDifXBzgFmVsKi9piXmBQ21qS9BRqMgIU+Jb5un4KIeIYCPrl.t05kIaHxCfwyro5cauofuZ8dr4btI2bGQDSGOfExcImxYmgaR9PRtUGNZwGvBhZKCwKoZScgLtyE5Wm76..v1ANgldDM2xEGI9NQxr.6MRPx4Bks9pKBPb1rrs7LVg2.BWLTRTrWqVH6I0ytfgewg.32aAlep8CKQaHMRs05Q+NOepfCIN2NlYQPuj34+.hoHjpwzzrFm.1e577jSgDdmH6qBgTt+vbg.LBeUNzFavuE+FnTVolzZe4ghgqs.ZnZ7OSTzatrmZAiWZ29is3kV1srQXbAb9+X6KSbBEx4cCmVvYtoE5camVHKE6B3t6cKmdv4lN8fykSObamivo73pYw4qLWwhkvXNp6cj3n2schia+HpONRf7d4nubhj.TsUuNGrmqWX6q7oONuD36z.dajyUJyF3yi.YvGHkyw4fdtpUdaYUxDxFFxh7KoZrdwbvBvubkYJjZgxxd1SSlv9TEVSRBxGWVgVIGO36fcaMssTPZDB0RrGMHX.TPeV4PIUCURETgLcQX5hUz6rYTohFFqzZNNoabbmmtFPIJoqBQJdhTwNFWt2nkjLKqgCKkGV7TnLH.VkxXGu9yYh0huMpNffASYWHHTrdwN.Xc0c.HeSIbiqkKmfRAVq9wSXIiubOBLRJ.D9smdHBcXaCRnAxMgEp3nIXtO6TtKKtIBUr1mE8JkbhV1wSjBTClqpzbuaZKFvJxM3dXGix7bFuF1Ol2GVuyS+Ecw3fVWUkzSn3xuQJ+5z1Dc4NYbOqNRuoATUwFqfm9SX.XcgtXfMnPDwUmmukTy1skUVrtszVF3gZ8JP0Ezb+Lqtbkqe416RkXuf2411dS5c0csNX3P3.alwthU6+zbaT0Mto74wlxOw54zSY5lNpMjUsd9iYhahFM9WW3FMdLjn9T1IvafhlHiXN40be1X9IvYfnBTmYFMKcFEntOSMUTT0wjJHEhEvsbiyI2c1MkXy7DgCfETFLtfl5vec1v+8Wef.6rTeFry8NNxE.FLXMOp1cJ7rjmimVcxOwLxMyS9angdfSysvoskW3Pl7Y1JdnNm7kzzyUus5C6GzLC+vSjcyz13Jo1Xe93IArCDvimfaEz13u.tFXHcZfJkZwlF2QJjS7kBta9ftdL3oaiFwJDXU5F5gJEbQcFk6uaOV.iFkcN8u8u18H3UFzP.mXWSrv48tE5k5u9UVwlKASjP9eiKfV9+Ku.pfK+NW7m7RG9+3TS4mkPffTblyUQXJ7.ZA.74IO2Igved2Rtr5P3DUnpqDds8rv+x2Tg1qrvwH3V5SmXZLsD.4eJYv5PhOcL36YAOk3i.yM9Oe1nNT3JErrhmLcbe3EatLvTEPwGXoSlKgE4DO1FGG+9Kgmdv+A9jvzAGalvzIk4hCIvqo9zwC94VvK7ZRzI+I+3m8+Cgi7CwZLl5FJ+V23p6wbr2QSA12B8+CEpX0AGSbLzU7mGXGCOD8accKppKMwlW2Itw0chadcm3VW2It80ch6bcmXq28Dw5Dd3Tkbb74Dn3otGnaWhoYbcS5iLF+WfEl5Yb
      

      Script:

      // Init.
      Content.makeFrontInterface(800, 600);
      
      // VU Meter declaration.
      namespace VUMeter
      {
      	
      	// Declare VU Meter.
      	const var pnlVUMeter = Content.addPanel("pnlVUMeter", 20, 20);
      	pnlVUMeter.set("width", 116);
      	pnlVUMeter.set("height", 35);
      	
      }
      
      // VU Meter painting.
      namespace VUPaint
      {
      	
      	// Draw VU.
      	VUMeter.pnlVUMeter.setPaintRoutine(function(g)
      	{
      		
      		// Declare assistant variables.
      		var a = this.getLocalBounds(5);
      		var CSize = 5;
      		var ShadowPath = Content.createPath();
      		ShadowPath.addRoundedRectangle(a, CSize);
      		
      		// Draw shadows.
      		g.drawDropShadowFromPath(ShadowPath, a, Colours.withAlpha(0x000000, 0.25), 2, [0, 0]);
      		
      		// Draw bg.
      		g.setColour(Colours.withAlpha(0xCECECE, 0.20));
      		g.fillRoundedRectangle(a, CSize);
      		
      		// Draw L meter.
      		g.setColour(Colours.withAlpha(0xFFFFFF, 0.50));
      		g.fillRoundedRectangle([5 + 3, 5 + 3, Math.range(Engine.getMasterPeakLevel(0) * 84, 5, this.getLocalBounds(5)[2] - 3 * 2), 8], CSize / 2);
      		
      		// Draw R meter.
      		g.setColour(Colours.withAlpha(0xFFFFFF, 0.50));
      		g.fillRoundedRectangle([5 + 3, 5 + 3 + 8 + 3, Math.range(Engine.getMasterPeakLevel(1) * 84, 5, this.getLocalBounds(5)[2] - 3 * 2), 8], CSize / 2);
      		
      		// Draw L numberic view.
      		if (Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(0)) < 0.01)
      		{
      		
      			// Draw L bg.
      			g.setColour(Colours.withAlpha(0x000000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3, 14, 8], CSize / 2);
      			
      			// Draw L db info text.
      			g.setColour(Colours.withAlpha(0xFFFFFF, Math.range(Engine.getMasterPeakLevel(0), 0.50, 0.80)));
      			g.setFont("Rajdhani", 6);
      			if (Engine.getMasterPeakLevel(0) > 0.0)
      			{
      				g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(0)), 1), [5 + 89, 5 + 3, 14, 8]);
      			}
      			else
      			{
      				g.drawText("-Inf", [5 + 89, 5 + 3, 14, 8]);
      			}
      			
      		}
      		else
      		{
      			
      			// Draw L bg.
      			g.setColour(Colours.withAlpha(0xFF0000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3, 14, 8], CSize / 2);
      			
      			// Draw L db info text.
      			g.setColour(Colours.withAlpha(0xFF8080, 1));
      			g.setFont("Rajdhani", 6);
      			g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(0)), 1), [5 + 89, 5 + 3, 14, 8]);
      			
      		}
      		
      		// Draw R numberic view.
      		if (Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(1)) < 0.01)
      		{
      		
      			// Draw R bg.
      			g.setColour(Colours.withAlpha(0x000000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3 + 8 + 3, 14, 8], CSize / 2);
      			
      			// Draw R db info text.
      			g.setColour(Colours.withAlpha(0xFFFFFF, Math.range(Engine.getMasterPeakLevel(1), 0.50, 0.80)));
      			g.setFont("Rajdhani", 6);
      			if (Engine.getMasterPeakLevel(1) > 0.0)
      			{
      				
      				g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(1)), 1), [5 + 89, 5 + 3 + 8 + 3, 14, 8]);
      			}
      			else
      			{
      				
      				g.drawText("-Inf", [5 + 89, 5 + 3 + 8 + 3, 14, 8]);
      			}
      			
      		}
      		else
      		{
      			
      			// Draw R bg.
      			g.setColour(Colours.withAlpha(0xFF0000, 0.30));
      			g.fillRoundedRectangle([5 + 89, 5 + 3 + 8 + 3, 14, 8], CSize / 2);
      			
      			// Draw R db info text.
      			g.setColour(Colours.withAlpha(0xFF8080, 1));
      			g.setFont("Rajdhani", 6);
      			g.drawText(Engine.doubleToString(Engine.getDecibelsForGainFactor(Engine.getMasterPeakLevel(1)), 1), [5 + 89, 5 + 3 + 8 + 3, 14, 8]);
      			
      		}
      		
      		// Draw line.
      		g.setColour(Colours.withAlpha(0x000000, 0.30));
      		g.fillRoundedRectangle([5 + 86, this.getLocalBounds(5)[1] + 1.5, 1, this.getLocalBounds(5)[3] - 1.5 * 2], CSize / 12);
      
      	});
      	
      }
      
      // VU Meter refresh.
      namespace VUMeterRefreshTimer
      {
      	
      	// Declare timer.
      	const var VURefreshData = Engine.createTimerObject();
      
      	VURefreshData.setTimerCallback(function()
      	{
      		VUMeter.pnlVUMeter.repaint();
      	});
      	VURefreshData.startTimer(11);
      	
      }
      
      
      // Callbacks.
      function onNoteOn()
      {
      	
      }
       function onNoteOff()
      {
      	
      }
       function onController()
      {
      	
      }
       function onTimer()
      {
      	
      }
       function onControl(number, value)
      {
      	
      }
      
      posted in Presets / Scripts / Ideas
      It_UsedI
      It_Used

    Latest posts made by It_Used

    • RE: `Sample amount mismatch` when converting to monolith

      @daniloprates this happened to me when I combined samples of releases and sustain, that is, they were of different duration.

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Stock Table Upgrade?

      @Oli-Ullmann Thanks

      posted in General Questions
      It_UsedI
      It_Used
    • RE: Stock Table Upgrade?

      @Christoph-Hart I searched for as long as I could, but I couldn't find how to reset the points, their position, and/or the tension between them. It would be nice to be able to set a modifier key if this is not the case.

      posted in General Questions
      It_UsedI
      It_Used
    • RE: Help with css slider

      @ustk and that's it, I looked, I saw the difference, my progress bar was moved by 0.01 to the left, at first I also wanted to subtract -2 from the percentage, but I just didn't understand how it was, I subtracted (without calc), and the maximum width of the progress bar became 1px. I am also a perfectionist, but due to the fact that I did not know, I could not bring the idea to mind.
      Thanks for advice!

      posted in Scripting
      It_UsedI
      It_Used
    • RE: Help with css slider

      @ustk I have no experience in css at all, and this decision was worked out through logical reasoning, and it seemed to me that everything was fine with the progress bar on any values.

      posted in Scripting
      It_UsedI
      It_Used
    • RE: Help with css slider

      @DanH alas, I have never interacted with the modulation matrix at all. While I'm studying the builder

      posted in Scripting
      It_UsedI
      It_Used
    • RE: Help with css slider

      @DanH add margin-right: 2px; in /* Value bar */ section
      cc8ad345-7e3a-47a3-bc3f-adfba3ad065e-image.png

      Snippet:

      HiseSnippet 1496.3ocsW80aaaCDWJIpawaqXAXe.HZwPcBhSk+ShcswPShSxZPaZClay1aczRT1DVhTfjJwtE6s8EceC166grijR1VMosCAqIvAgGu63Od2Od24yE7.hTxENtUd8rThi625MXFSMt+XLk4b5QNt226LrTQDHqnCmkhkRRniq6p+rVf65q4X94ue5g3XLKfrPjiyEbZ.4EzDpZgzy2+4z33SvgjWSSVR6V6eZ.m0mGyy.7rpmuSJNXBdD4kXsZq347Lrbri6VdMauGNpQ61DRzd9Ooc6n8ZGfaPHsZ1p0vP7vFc5DzY21cbbu2wgTEWLPgUDoi6ZGxCmMXL+Jl8.tfJoCiI5E0cF.mrU7I73P8UTK0o+XZb34EAJoC3kyWD1V0F19Auyngz4xWD99dyFnEVrb.zckxva0Rvq9xvyeI3cKPxcIHslERa3MHPPSUK1Qimuw6TFjMivPdZYnX00Yk2dOu9bPClZmD7DxIBXwbKptmu+1H3Oa1qREHWIUnKwBzyY7g0Q+DpvvQDUedRJmAKp9.ytOnrES.YAR4R1DHHPL3E7.b7K37IGvBOgPhqpMKW4cjD.IwTFYfZVLYvXBA7dkcjFjKiog.I88UPnTtjpnbVWjfDiUzKI8.oCAtzHAOiE1EocBVTaj.GR0X7gM8aVu4S1F8vFMZzrwS1rG5wagX.0EEhESPEJh15wfmBfDgnK5g8a0uY+lZeGAWhZQ3DZ7rtnCDTb71HIlIqIIBZjVCEYpplR.xh3hjtnrzThH.KMPKEGFRYi5h1Mcpd8UzP03tn5s5.qQ23G.ZvsczXU7L3FFlEPBQJNZBgjhhfWVHJSBACzPtPGRLX1fPI8cDvsMrmxXh1GcQMxOUq5v9oSQRNDNQhQCwUar6taW7wemVPnw.frgp3xGg8+qoCUYRvse.1KgZcZ.Pc.WvHBo0ddlRmW5hX.wwBno0jiwg7q5puRDExGfVK3ydvGC37217qAVvAPYf6PVafqr.BOZpObRw.mp.lS0ABS7NGxfndKASJKHNChe4okGmeIoLahQ6l+nREPwKvwYPL.aB.k3gc6hiT4zw.KCuK5QOReqRvhQTVMQdv2F6WPYwCgXelxD.hIQJS93VHAEPUGVhD7DixkxGJd5mv3OvZP4RFmSAgWiAUgGrUqU6R8kcSzVn599+XAK.1mHAkgnR9CPiZVeTPvLNQaEpl99tYuxjBEdVAiEPADsUJ.P4A+7b172t0Jd742rSyC1qWgWrGqYyakMV+lrwDrJXNrsLQKwb9wlxo5Je0HWB4OYNwrjOB4fPHrGyClT3JiM3.c5LOQne1mmdsLH+c76HyqBYHtxDNGjmvujjnqyb0XBq3NMFyFQjVVmoLZESEUc4vaTtLuT4l8hxXVDvYujqHuhUcyJuux5fKPe3VQQ25d5ByBdbLQbqaqacK9TFVkkkLjH11dMlqHzdpbOOuOdOukaIm+JZIE4rSYT0qRIrOViZm7lK59i4nBTUY5Nd+7tiCLIMGJzD7q7LAVGCfWdtFm2b5QXEtvMfGgSApeqn5Kf6QjKgNE1ltq6cDQNA3wFcy6ABm1m8PmN+.QA6Oa9heWruT2sSOX1y3B56fyGG6.CjkN.plmq29+069ymZnVKfMae66uERNceID8dMzI5P9TcOenhEjf+UnQZrd4vQEyds98t95qei1FphjrPZylMiJKsgV7Farw+nEqaxUxEWam26Fil.CEwCyfdykmTROOY9F.Upz3I5QPzOhlsbd4+swm9uBwM7NmBEMtcLtxsfQfx7k.i4Cc9cdGGEQBTK.3Zdm7aeYlvz4Wf9yPkwyvJAEXOduLKY.joCHvoCsci0OkcWQ+nyt1WuVGAFPXglEZBQ9l00qcy2rdwlNIXfQ91.6SU8XsesQBfIl4q.rN7cQf0na7F0wIAlx9sAAkc0MLrwc0vl2UCacWMb26pg6cWMr8c0vNedC0eInCxfF61mMNNmc9wlZpttGyv.CzvVc9W7JsoXG
      

      Code:

      Content.makeFrontInterface(600, 600);
      
      const var Knob1 = Content.getComponent("Knob1");
      
      const var knobcss = Content.createLocalLookAndFeel();
      
      knobcss.setInlineStyleSheet("
      .scriptslider {
        position: relative;
        background: linear-gradient(#303139, #222329); /* nice dark gradient */
        color: #C4C3C3;
        font-family: Arial, sans-serif;
        text-transform: uppercase;
        padding: 5px;
        width: 148px;                  /* slightly reduced to keep fill inside border */
        font-size: 12px;
        height: 25px;
        border: 1px solid rgba(255,255,255,0.4);  /* subtle border */
        border-radius: 2px;            /* slightly rounded corners */
        outline: none;
        box-shadow: inset 0px 4px 6px rgba(0,0,0,0.4); /* inner shadow for recessed look */
        box-sizing: border-box;        /* include padding/border in width */
      }
      
      /* Value bar */
      .scriptslider::after {
        content: '';
        margin-right: 2px;
        position: absolute;
        left: 1px;                     /* inset from left border */
        top: 1px;                      /* inset from top border */
        width: calc(var(--value) * 100%);  /* scales with slider value */
        height: calc(100% - 2px);          /* stay inside top/bottom padding */
        background-color: #0383A6;     /* value color */
        border-radius: 1px;            /* match slider corner rounding */
        pointer-events: none;          /* do not block slider interaction */
        transition: width 0.08s linear; /* smooth movement when value changes */
      }
      ");
      
      Knob1.setLocalLookAndFeel(knobcss);
      
      posted in Scripting
      It_UsedI
      It_Used
    • RE: Hise can't save hr file with hxi metadata.

      @d-healey yeah

      posted in Bug Reports
      It_UsedI
      It_Used
    • RE: Hise can't save hr file with hxi metadata.

      @Lindon I think it's better not to spend money on something that you'll end up giving away. This means that such an infrastructure is likely to be redundant, and I live in Russia, which means I'm sure I'll have problems accessing foreign services.

      posted in Bug Reports
      It_UsedI
      It_Used
    • RE: Hise can't save hr file with hxi metadata.

      @d-healey no, no, do you remember the stream where I told you about my projects back then based on Kontakt?

      posted in Bug Reports
      It_UsedI
      It_Used