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

    It_Used

    @It_Used

    Steinway & Sons

    22
    Reputation
    11
    Profile views
    78
    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: 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
    • 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
    • RE: Release Triggers with Sustain pedal support

      @d-healey i find bug, your midi list isn't cleanup after function complete. This error may trigger the release notes again, even if they have already been played. And this happens if you send another message from controller 64, no matter what value it will be, 0, or more than 63 - releases will still be triggered.
      Add this at the end of function playReleaseNote

      noteIds.clear();
      velocityValues.clear();
      
      posted in Presets / Scripts / Ideas
      It_UsedI
      It_Used
    • RE: VSL Velocity Histogram

      @d-healey said in VSL Velocity Histogram:

      Arrays should generally use const. And if that bufferSize is fixed it should also be a const

      it is my typical stupid moment... Sometimes i forget primitives.

      @d-healey said in VSL Velocity Histogram:

      This one can be a local

      Yeah, after publish move it part to init callback, into inline function, to avoid cluttering up the onNote callback. Now i update post!
      Thanks a lot for the advice. 💕

      Edit: Post are updated!

      posted in Presets / Scripts / Ideas
      It_UsedI
      It_Used
    • RE: VSL Velocity Histogram

      Update: Histogram based on a ring buffer now!

      Works same as pervious version, but maybe lightly different in FadeOut anim. (Thanks @Christoph-Hart for advice). 💕
      Updated 15:08 26/09/25: Added opacity fade.
      Updated 17:02 26/09/25: Some refactor.

      Screenshot:

      6446796b-ab89-4eb0-b0f3-90f026bc54a6-image.png

      Script:

      // Init.
      namespace VelHisto
      {
          // Declare histogram panel.
          const var pnlVelocityHistogram = Content.addPanel("pnlVelocityHistogram", 0, 0);
          pnlVelocityHistogram.set("width", 128 + 10);
          pnlVelocityHistogram.set("height", 30);
          
          // Ring buffer for contain velocity values.
          const velocityBuffer = [];
          const bufferSize = 128;
          
          // Max value for each velocity.
          const maxValues = [];
          
          // Init max values buffer.
          for (i = 0; i < bufferSize; i++) 
          {
      	
              velocityBuffer[i] = 0;
              
              // Make start end bars same background shape.
              if (i < 5)
              {
                  maxValues[i] = 8 + i * (i / 2);
              }
              else if (i >= 123)
              {
                  maxValues[i] = 18 - 8 - (i - 128);
              }
              else
              {
                  maxValues[i] = 18;
              }
              
          }
          
          // Add velocity into buffer function.
          inline function addVelocity(velocity)
          {
              local index = velocity - 1;
              index = Math.max(0, Math.min(127, index));
              
              velocityBuffer[index] = Math.min(maxValues[index], velocityBuffer[index] + 5);
              pnlVelocityHistogram.repaint();
          }
          
          // Fade function.
          inline function fadeValues()
          {
              local needsRepaint = false;
              
              for (i = 0; i < bufferSize; i++) 
              {
                  if (velocityBuffer[i] > 0) 
                  {
                      velocityBuffer[i] = Math.max(0, velocityBuffer[i] - 0.010 * (velocityBuffer[i] + 1));
                      needsRepaint = true;
                  }
              }
              
              if (needsRepaint)
              {
                  pnlVelocityHistogram.repaint();
              }
          }
          
          inline function getVelocityData()
          {
              return velocityBuffer;
          }
      }
      
      namespace PanelPainting
      {
          VelHisto.pnlVelocityHistogram.setPaintRoutine(function(g)
          {
      	
      		// Declare assistant variables.
              var velocityData = VelHisto.getVelocityData();
              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 background.
              g.setColour(Colours.withAlpha(0xCECECE, 0.20));
              g.fillRoundedRectangle(a, CornersSize);
              
              // Draw velocity bars.
              var barWidth = 1;
              var areaHeight = a[3]; // Full height.
              
              for (i = 0; i < velocityData.length; i++) 
              {
                  if (velocityData[i] > 0) 
                  {
                      // Calculare bar height.
                      var barHeight = 1 + velocityData[i];
                      
                      // PosY: mid position - half height (bipolar view).
                      var centerY = this.getLocalBounds(0)[3] / 2; // Do not reduce getted value (0). Because dividing by 2 will not give a ideal middle position value.
                      var y = centerY - (barHeight / 2);
                      
                     	g.setColour(Colours.withAlpha(0x000000, Math.range(velocityData[i] / 5, 0.00, 0.50))); // divide by 5 is a fade opacity speed.
                      
                      g.fillRoundedRectangle([a[0] + i, y, barWidth, barHeight], barWidth / 1.5);
                  }
              }
              
              // Draw velocity numbers and lines.
              g.setColour(Colours.withAlpha(0x000000, 0.25));
              g.setFont("Rajdhani", 8);
              
              // 0
              g.drawText("0", [5, 17, 7, 8]);
              
              // 24
              g.drawText("24", [5 + 25, 17, 10, 8]);
              g.fillRoundedRectangle([5 + 25, 7, 1, 16], 0.50);
              
              // 56
              g.drawText("56", [5 + 56, 17, 10, 8]);
              g.fillRoundedRectangle([5 + 56, 7, 1, 16], 0.50);
              
              // 89
              g.drawText("89", [5 + 89, 17, 10, 8]);
              g.fillRoundedRectangle([5 + 89, 7, 1, 16], 0.50);
              
              // 109
              g.drawText("109", [5 + 109, 17, 12, 8]);
              g.fillRoundedRectangle([5 + 109, 7, 1, 16], 0.50);
          });
      }
      
      namespace FadeTimer
      {
          const var FadeTime = Engine.createTimerObject();
          
          FadeTime.setTimerCallback(function()
          {
              VelHisto.fadeValues();
          });
          FadeTime.startTimer(11);
      }
      
      // Get velocity data.
      inline function getData()
      {
      	local velocity = Message.getVelocity();
      	VelHisto.addVelocity(velocity);
      }
      
      
      // Callbacks...
      function onNoteOn()
      {   
      	
      	// Send velocity data.
      	getData();
      	
      }
      
      function onNoteOff()
      {
      	
      }
      function onController()
      {
      	
      }
      function onTimer()
      {
      	
      }
      function onControl(number, value)
      {
      	
      }
      

      Snippet:

      HiseSnippet 2071.3ocsY01baabDFPVzSEmlNIsc5G6bi+DXLML.snDcURZrdKVSsr4H531LZzj4HvQhKBDGFfiRh0i+Czes8eP6t2gWIAiXTafkFAb29xyt2d6t24gIBOVZpHwvr86WDyLL+ssFsHRFbT.kGYb1wFl+tVmSSkrDhdnCWDSSSY9FllO56vAL2YaC0y+9udHMjF4wJGxv3CBtG6M7YbY4nC+1+FOL7TpO687YUnd2u8LOQzQhPwb.OOpkiQL06Z5T1aoHYa0x30zz.CyurEyex9NdtT+dNr82G9XO29SXi2cWl69S1e73WR6s6.5.WCyGehOWJRFIoRVpg41GJ7WLJPbajVAefmxGGxvObMFAZVO7ohPezDwQMNJfG5OL2QkZ.RYXoa6QZ21er04bedw3ktuOWMAojipNPyspCuGUCdtUgmSE30.jLq.os0P5KZMxKgGKKmAwyeHazRD4VCR5YM1Z2eeqm+bxYQboc6Hv+mBqELxGXgulmJEs+XaB7.TbLyKjlvHA3vSSnyHwzHVnsZdX4LURtglPhiBAdEdb4hWWP4WSNRDIYQRapu+PjMqmzDgOoKwA9oyAJg1DE1oLo0Stk6KC.hc6Mf7Th68yP.iOMPBb7hbZyMqK3QSIimOYBD3OQjfVhDVRI2jIHvnBmyRqYlYScnlqulb4UGTYZsvFw+mLXJ.g0024z6zhToMF0KnPdU0wL5cePo3JhOWD3ZERPFzxTnlaTnVbfImCHbxWUALv2O8oczB4is2Q8W7ot0bI+JEyESW7hB6WyHoRZhjvh7IioIojTHjAdy65oIh4vfoAzXlcAW7IHb9JR+NEC8wh2vmBCUqYb8jS9RjomS50oDGep3MVXJKSteC5fewFJZ2AjmQveAFeFtvrVouoxqI9aW9Y950q78KCm3QRQQ717HOIWDocW7nPdDqXPBrUIOZ1Jm8NsqCKXTZHvoO6N.QEJALuRrkO64TYfMXCVvVL867HK2d62USQmNMrnubvAR3UExB3uhOQMW20vxSgHfR423F0DVLrwSZkQWceHVD4d7WS.RzXwpY2TDi4mdgVKfMLgBK0MXya1VnUCOvPxU2L8MP5LRM5py051BVc0Z04eFww1w0A2nr5jPFwpKl4OKY9xj4r5D8o0ENmacUkv51zsIKskpnxh7xKmSYxbAcLURWYMMgImmDsjuIOz4SsqTKSUvYHB.HWeVAs75a1qqlgh9KDyAdXV4fxZZmh7m6rSkhhPUUfYZjpFHmBkxSKyAhkEuoho.N+B0uhUdPM1NRjDwRRyJlzu9jnfjP4XTHuAivODy.mZ0eIgLJf5KtMFBnpTH1KgAshLDFrpNKIEqTeAJOl+ELOvzlFxrncqhnNMWk33D5sXY.PPUbBSsGylxidCcAKwRs0qB6Ss8AlNNQDqAvoIhYJnUhmtDkxwVFSsukKCdUXb.0x4NG0Cz0fcu9c5R50kbI90U0DOMNNbAzd60KKQbWPMJgBaZL9yYck06pZfPTiFfVMgyiNA+mBmNcpoxIPSx+O3pKx5i0iqG0Ai72wVkvpUKE6.K+uV0TDLG8xWb0AprryCCI5dkru+DiUiosCYQSkAadFRjoMM+HfringdyUa0.aZEHtjMWXXtPtvkT3p4EaRcCEo+vegLi6ShEobU9nmQBngSxTMwZLOVDhar4ra6zLR7f8YrjeXM6Rc5.dcrIGkm+XAIRHgjZ9ygLV.oRleVeh.k1jCYdz4PeO97afSYfsrtfzibKD4n3aJ+FHIDg6yf5b.r8CYkHWIllg3B.b4vDZLpz2Uu4q04p149B5y2bpplk.Q1rUB.dNoOtoPuEtOr0nixgnLTFZl8I7Tv1vx6DAjPGC0SigRQ12+R4Z1bcI8RGrNIuKYQ2hcIcKictpbT.ft1867KnT4JaLilOaLrQlPg9iwhboadViZY2pk0.36THWt0Stf9S9AzHNb5lAqIOgyRYZeO6NfQGfiKAmuKzBH7yfqVC281sQ16sqhevM1KSHtNKIk049yYB4A9YuqxV6aV+82qQ82eub82euGf9Ql1L8O3kMp+AuLW+Cd4CP+HSal9ccZF.v34H.dMCB89E.AEWMigOA+sVST42hSRVCTkm3OeFHUxIQPIdVVuEJpe23eBzoU0CcmSOFAqnAxsGhUTKayZ4d8JZWpZO9k.stTwympjqkqq1J.e32wJO2NwGKX0tgFNyZzDZuSehgBNf9wYoozorpMrgPXmBn03w0Tpust9kxFSsssaWnRQzaER16PC9in6A5pDncDd35k.6NEnCzIJzkkwjIZfCyQpLG1tWhHLDanogo09oeFFsz4t5pKhTPng410uPqVq+Bspdead5tOqPnHBuNi2EyhV2svYj0xJ712eF5CvaAKaLftXVhjiPv7X1MbOl9Nw1o0wrzqkhXEsyhEQnDLerTM6mkeiY3ICL39Fl+oVMcP.i6.KyDuxxE4unt5IP9O9ekcwm5FBvQ9y42E5pWQ2m25bgOz+hr9MFh2qZ1DfWu10ycFZePA7EUu20+ucMhaJD+hVC4Ruflw3VMfQXs4WCLlc4qeVqSfS44IKA31sN8e7qyMsZnO72Tn0kDNFG714yFA0m8Xf1if3FLp2bKL9T+sSdHBt+U8w+AdxlzE+1LaR27IMlQ8RD+nmduFd8t+F0H.lhTWE9NsNG+l3Zn1+U0OCc4w+QOu5hZEF68PY7EOTF28gxX+GJi68PYb+GJiCteFw+y.d0boXldaigw4COQk7xz7jH7BBTQqF+W.sdb86C
      
      posted in Presets / Scripts / Ideas
      It_UsedI
      It_Used

    Latest posts made by It_Used

    • RE: Rounded Rectangle / Panel masking?

      @Chazrox i think my example is little incorrect, do not matched to context, i later read your messages, and It looks like you didn't need exactly what I wrote about.
      This is my mistake, i'm sorry.

      posted in Scripting
      It_UsedI
      It_Used
    • RE: Rounded Rectangle / Panel masking?

      @Chazrox
      Paint routine:

      const Path = Content.createPath();
      Path.addRoundedRectangle(area or local bounds, corner size);
      g.drawDropShadowFromPath(path, area or local bounds, colour, radius, offset in array 2 elements);
      

      and if you want delete inner shadow:

      const Path = Content.createPath();
      Path.addRoundedRectangle(area or local bounds, corner size);
      g.beginLayer(false);
      g.drawDropShadowFromPath(path, area or local bounds, colour, radius, offset in array 2 elements);
      g.applyMask(Path, area or local bounds, invert in this case is true);
      g.endLayer();
      
      posted in Scripting
      It_UsedI
      It_Used
    • RE: All envelopes break when playing the same midi, in the same place.

      @Christoph-Hart need your help.

      posted in Bug Reports
      It_UsedI
      It_Used
    • All envelopes break when playing the same midi, in the same place.

      Hello, i record a envelope breaking bug. Midi from video
      Video, There I wrote more details about the bug, identified patterns, and other things that might make it clear how to fix it.

      posted in Bug Reports
      It_UsedI
      It_Used
    • RE: Midi CC events ignored in scriptnode envelope modulator.

      @ulrik see, i use it in sampler gain modulator, use it with sustain pedal, if i use midi_cc node - this is working, progress slider on this node - changed while i press/release my sustain pedal, but if i press pedal - any ahdsr do not apply sustain on sound. If it were that simple, I probably wouldn't have posted on the forum after a whole day of unsuccessful experiments. By the way, you are not using it as a modulator for the volume of some synthesizer or sampler, I have checked on other types of modulators, everything works as it should.

      Try this by yourself:

      HiseSnippet 2054.3oc4Y0laabiFliTnSrrqayhrE6BrEXP+kaQfgjshcBVzZYKY2XzHGAKUis+JkdFJIBOCovLT1VaQQuB6EXuBK1iPNB6EXA5QH2f1WxgiDGI4Oija6tNH.h7ke7790CeImFQBOZbrHB4Tn0fdTjyx3lC3xtU6RXbzA0PNqfqShkzH2jt1cPORbL0G43j+qTc3r3CP5+d216RBHbO5ntPniELO5qXgL4ndaT4qYAA6S7osXgVitbkC7D7ph.Qe.O4wEQ8HdmR5POjnFVNL5kj3tHmOG+hxas4Ia4870KSK8hha97SJQJS2rL0aimuk+IunLcimUrTwhDjyB64yjhnlRhjFibdvtB+AM6JNmmrAGyhYmDPUMJgZB6bR26KB7UpnpWT0tr.+FoFpXDxA2XjYKehY6I35Le1v9GY99Hs.2Qyv1.5jKK7xmAdkrgWQK3MEH4XAoGj.oGia5Ew5IGIQgmkvGvAuYaB3mrgRxXQ49WN3pBXDb4ZgjSo6GAMFNiUAi5Sc2n3m8WKT.bUwR2yHQt61WJE7Rtega5L6PkUEg8DbnwpepQ9mplEiGv3T2184dRlf6J3FopoFIBV0KcdOEV6f9zOqv2WXQcH4ZwTtuYXAznVBsUPKJd0MK+T2Rquk6malErU+.7+qAPvRJMqXURPvIP31piiH0RUvBuGJjzWyWUiqB+PA2wE0t8TkMB3SUrJSH5pl3p79gmPirsJpABd6rgP3KODxNB2KwvXMPA+.NS95dT9kE2iLVSU3lAUvPk5fsULAaI1NDChoVDaLjHMjsYEPeyA0HRR5BAqIrO8nQRlREbpQOCXMRhhWDWiFepTzSOViKD47vav1dg8VNvtw4LeY2Qc7sU5RYc5ZQQ8kUjzKf1Xby9flOYxEjVK76GPjYy0ULhFAf2KSBlJIhGyjCrYLmYD.2TH9XbClzq6zwXtofQvGMOvng17Cv60tM0SNBfO.u+ea9vQZu8eRx1+GvMkQTRHi2oIIrGjbpwPAroUoYwwc+ia7wcMhnABheS1e2ZXusxt8AaTT1d+2Uza0Ngh97L6kA4GQ6QIRvMaCuJGczWEI52a7Y8ts0AEsh.9OvTXK30bJXqk15X0HQbbaPczqUrsnF8i5nrUi54H5Yzn3r8cX+Pvey4z.EekiihOHlp7uLu5DYDKShqdWJ1hn8wPM.51kFq85i0diwZWdr1Oar1aNV6sF0NwfVmzKoXHfuxCHppUm4UZBx2EtYjuvh0f.pu0H2k0Y3Fkzy0TCxB+lqFjeGvR5jyBiOLAi+YyQH6wOCx95QGhXMX+KFotohcGJOK4PcAWzqqfy7xF9Cgyc5.7JVpyT0QS8WNOEeaN7GeiMLktZe2vi1QGRkmKhNUWTo42HmGorEKfaQikncBBDmqNJlY7ef1q6qgHXPpIvIWxHnlL8TJGrSNXOF472MP3cZB0FVQDnJwuEgEnVA3nWnZD+WyaBqiln0I+w.ahdOeHt3Zv+.W5gZRtE1m3AVhAMHpS1eLVUfCDlQiVyaXjmQArcaIWsvHPsRo7wInAThPc8F.QfSdqhTRp3V0B7h4TK9x3ChOVI0iDfNNohGPYUqoNxy.S0PWDGy5rdnvGkAzqfCIpxbMxlDlil20fzb1HE0fDASGJgOA1osfy4py3GOdsY0IWLVePvoj1K64OHTySomm.+Lw10TtljEnETBUKg92P3EbNfdSWB+MbeZav03CHqigjs+IZdWciIfTMZaR+.4D8irroKgCANtDecFq5ezJTXzPlz3Zu.yy.g7YBDT64a77PSI5Ex6WKU7zhERkca.qUlWKBbVsbh3i7253iu66pLY7ADybowGEvUqdnlPaVEhznxzCQd21nYS39UoNKg2iqpVndi8tGB4m+ouqfyr42qYwKiaGPu3Mjt9wQimFSMm.ul0PlLuHyJbMoF3qLO9CwPPpUtgA3ImfgZdttj4zjH3zJqNLWrkS0miGO1vmPpcSyIEG3q.vYpZ7eSHgSTkPLDKJgKiU2pvUeK.sZA0NdQ5kpqwh6EPFjbwg3I5Qoff26Bkx7yve6A4h9Pwl5oqrLYoDJbqi4d0+sxMJl6s+Sx+QGy8H7NRIb6iKIZCNeVc0oaTf1StDtfmTAM+0iEvuDJaeFnEyRFfasV7PfAviLXNpFeak6AhrEUOdi5j+KQQ9X7ghnPR.rf9MnQd.ufRmtQJ161d5J1Os88f+YQ7Qz.JIl996gp7iSOc4sQ2EOD5VVIvBX8KTLiNh4x7Iyrp.tpfsOvvf8JJbJ08X.28pxUsezYz4fx8SyvroasxsbBa2+SpaqjxT7qf1MsqZXUp23U2joZu+znp8xNpIK3a70Y1b03klO2UHSUaycZuc5KEgDYxa6mQWy1XWg3zPh9MetSeYF6W96iRDtDdendzcdYslGoe5kOV21U2wv2RKyKnk688EzLUPZUvmtVrL0hnppwpHjz5CrVkzSVsNHL6qnmtQID8SzcRhVl7igjKV8lIszp+awScVZ9+Agx++MePnqxDsh4yA4B6Xj72feTukwZxAW02X59DdGI5KY7NoeyF08kaB7tdT6Oui51xl1ESYjaR49ESu8oQXozuEjRXoTgHuzkBzGyuStlZdp9UWzTGAYyEQnX3dtJHotK68AJCIdQh2Xd0NEVejtG.kbyq0UW01cJeK7zmwKyRMwDW+tNwMtqSr7cchO6tNwMuqSbq65De90OQ0WNybNphbDJBnwdIAfN6ML.LO5W.Xp03VM
      
      posted in Newbie League
      It_UsedI
      It_Used
    • Midi CC events ignored in scriptnode envelope modulator.

      How recive midi cc events in scriptnode envelope mod? I has been add a Flex AHDSR, but this is no recive midi cc messages. i tried a more methods for a day, but i didnt take a resault.
      Without scriptnode, build-in envelopes has recive midi cc messages...

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: How to limit voice count per key?

      @It_Used Now is impossible to implement this. It is currently impossible to get the number of votes for a particular note. and send note off by noteOn EventID.
      Maximum - switch sampler retrigger mode after thrashold.

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Compiling all 16 channels get only 2

      @ScreamingWaves see, this is my Hise build with 64 channels.
      0affd512-d079-4cbf-b659-1a239555761f-image.png

      But above master channel we have a Hise Output, and here only two channels. (This moment seems to be described in the documentation, and if u compile a plugin, u have always only 2 ch) Maybe i write a false info, try connect master to Hise output, if extra def is working, I think, on logic you should have additional channels. I has been tried this, no addition channels in Hise Output.
      28c03c03-6a2c-45c2-a148-da5fcf3d1fb5-image.png

      posted in Newbie League
      It_UsedI
      It_Used
    • RE: Not working: getMinValue() and getMaxValue()

      @Chazrox into online docs available new UI Snippet, this range slider based on panel, you can use it! This is time economy, Homie)

      posted in Bug Reports
      It_UsedI
      It_Used
    • RE: Not working: getMinValue() and getMaxValue()

      @d-healey i've see this later, after post publishing.

      posted in Bug Reports
      It_UsedI
      It_Used