happy holidays everybody! :-)

Oli Ullmann
@Oli Ullmann
I am a composer for film and advertising music and have worked for clients such as Porsche, NIVEA, Bugatti Automobiles and German Television, among others. I am currently building a new audio brand called studiobro.net.
Best posts made by Oli Ullmann
-
Horizontal And Centered Pan Slider
Hello all! :-)
I needed a horizontal and centered panning button/slider. I am completely new to HISE and didn't find a built in solution so I scripted it myself. Please feel free to use the code if you need it. :-)
All the best
Oli / www.studiobro.netHISE Snippet:
HiseSnippet 1692.3oc0X0saaaCEVJIpq1caXcnEaWrK3L1ExcINVtsIEHanwwNt0nw+fX2zBLLTPKQayFIRAIpj3Nzmsc6ta6QXOB6MX6PJKaoF2rLm1NTi7GO+wOdNGdNGltAbaRXHOPSOW+I9DM8O0n2DlXbswXJSqYcM8uw3HRffZicQcwLFI.0mDJPkqrQ4JZ6MwGGFRbzz0W8QRMzysll5ye8v8vtXlMYNIMsi3TaxATOpXN0t69DpqaCrCoO0Kkz2a2l1bVMtKOBP2pFk07w1GiGQZikhshgl9012gJ3A8DXAITSes83NS5MleJKV9ingzAtD4BKsdfghI2f65HQrjpVswTWmtIdgPMMcity8IqF6StkQKpCcF849luPw.MWiz9C8UxBuUy.OqzvqbJ3s.HomBRqECoaZzyNf5KlyQhmaXzjIHACwfaOMThkUake+ZF03fDLQIO7wjFAvhYZXtU4xqifeTbm7atYrJnASPsJg53ROAB7O000CRA.tmd5okBEQNT9f.dIFQ.zZDPHHAGEER917427Na.epuesCpdX09M6zt2FWgO2YSXCpEP.OI5.tLW7.N+XTUlCpAg3h5L3kDaQdHgARMOlwGnX+injSqsRUklRNfdR0LKletYk1pIy1MxgfdBXAEgdDwh2oDCicbjBaVP9SqBqipHchUTNwXzbBNPYOqTvYDQTi64yYvhDUAET+QoPh3b.M4HABAHNAlOCeBYHOvC8HBbuDC4Zo1yDly3IAf5tsZ6kIYpUlENuYTnA1nivATLjiFlWZQeL6HraDwZmrK6S77iI4RYjmCaS4cRR.dR6N6g5se+9Ma+ndWo3+LmSKtCwr.TKJiKqmXhKP9w7.5q.uL1MCWyBdTFDc1vpT42fN9Lf94HGJH98nuh.7JWprUwrGntUa1tOpwSaWSlYujGnjXZo.xHJreAMhX1BJmYVvI.e5AfuDGzyk5PB.TLLg4n0Q7AurX9eIetM2rNw1EG.IuPNLJIZkOmLVfg3.HXIfMdm74PvWvcTnTab18dPwzQA7HlCvXTog.ipttlw0aCKMvE3Wbld0vt1QtxqIJkkXCU3rBytiH6LPYi.YoCMiciPRlJ8vrH5GfLhh.O.xnbyRa.7cNIuCxbCK01lKS5EHKDhPajJGTBrbIIblYkdSTEosrp7.kojeCUzxfybm+9gLxWUHBnChDDSq0OG7T.60v2D2PR74YFB15dnuGYVtD7a3PrfClETSPZ..MuIXtRXQEepCILyCMpHZnrFiLXNKld5XpfnzaTojLLSE9WGM8WPsK7Oc2eFtPTVci.L+qKtSRtGhyZyEjNLSU5W9WmG8lrFNbg7jE9B3ttjfExV14O3hTzjE4MfDrNTYCN8yDDZGlsGqwauGa5Q.riqCmRPNqIiJ53SXusACzlV7V1OdJp.QEptwe9ztww2V0nPS2OwPEwzT.N8LPZOsYcr.mXFvhvt3KGwRd.zqSNAlQJtIeNi5jviEbekrS6W.c4+W2zy.Og9uA60jj+HTVdTNc27BjZdTGGWRWdHU5rSiQuLSx8qgQCGROS5XNPyCp9BF0.Rd0BA+mJcrK2OxWt8UGvOgnIHmIRFbKug0Vau81UrtOLp24FiAFfh6HKrjcpJ4njSYHQV5QYjiqv.DOI8nluyF05xBwaZzkJrGuXLtxBvHDteefwoCn9YF6ObHLVxb.tlQim+9YZzza+si29aXHKfollPs421XAiTbAuU3OtruUv+R+VgN1B.B8CvrPedHwJskeCdURyqNQDwxJdLoLRIOdMfiWJ4t9tIDqjlHbMIiwf0YrTK48pjk+4C2mIaf2i.mFmNg1vgU56Rmp2MB587LpiXrUZEmStRZxOFGHmxyNSh3pWzylrVxmMcs2WOaZsKWh5ECuOBJ8j4Ud4RvXOpmuKYe1IDWnIgBieIzUXHNxUjPM6UqVbF2eLmQyDzOj.yRLZDIStzBOPvTGvneyobqcOj3Rvgott8c6FObZKUufkxWX8e9EuKLd80FwvEIqGftJwsOnoYWX6iUuTsOdmi2kuUxG3anPIyOdhzekATFuBREtQ++GuOjGIfmbzBCUCjCI1NxqGzyzl.Hlwfm0HmWbE4vtwqKKWKgSOByQs3ugOSYZIWqOkoUByOH6gG1Nf+B63wvkELtthBbtYp+6f4LZIWilM+sgA7fF4DuzWXaKyo2.7OKVmJKgN2cIz4dKgN2eIzYqkPmsWBcdvEpirie0HA2KN+GHzce06fz0iG5QcUP6e.wSHwv
-
RE: Close the preset browser after double clicking
Ok, it can be solved quite easily with a broadcaster. You should also query whether a preset is loaded so that the browser does not close if you simply double-click.
For anyone interested, here is a snippet:
HiseSnippet 1303.3ocsW0raabCDlqr2jJ01zFf9.rPmjKDTjrrSTaPQskrbqPiRDrbSSQPP.WtTRDdWxEjb8OHv.8Pe.549Vz2rdqGSGRtRZksZ9Q.UGR14+ONblgiGIEDpRIjHuJmdUJE48Y9iuhqm0aFlwQCNB4cO+gXklJCbr5dUJVonQHOus9ACCuxair+96uuKNFyIzkrPnmKXD5SXIL8RtiN3mXwwGiinmxRJn8dGLfH38DwhL.Oa42DkhImgmReJ1nVIezOhUyPdeseaZztc5f2eu1sIc9lNjGQvcnjVgOp4t3IQs6PiBi1a+8vHu6zOhoExwZrlp.m1UDc03YhK3t.7blhEFSMDsPigH6Xi5MiEGMZdxQgPdaOZYpZKWp5q7GxhXK3uLk8kVAAKsnXRyqz6BRs9HfjWAHssCR22eLQxR0KkXvym5OfC2fSvvcSQn3zEU5ta42S.Zv0MRvmQOVBDKrn1Ca1rd.7O673JUf6GkN3brLHML36Bla0TptmHIUvAhZUSCqZz8AOHnqTfiHtxmH5DFmoYBdAuDR.uzmOkwoMHRJjQJXRs2TIHnJKp52FTMjTstgBKmp.5WVkLOdUqGTkdt4iWY0PicZ7pJWmiBrViIyBzh.qdAlTUkPRCG+SEKf9PQlh12nip1KMGiWA99v33fd333PnVTYBV0Uc6DlDNLwL.wbpz52nnmjSVKMDr.7T8fIYbh4zWaAxq6vyNuoRY1jZ1uaDIxfK+dwLxY6Tob4zvFJnzvjmkh3ZSvwJJD94mrmkR4PYFUQ0lb8EJ..LdLjMWDt.AOTyMJN2IEh+433L5NUb.Hm3VAUKyrwDB45uuy8e0cZnL7sVMOiU6lgG7TAn8Tgl9LdMKDpbckfaJZxj0JK2WwPBdchMiUjuKCqwyRBoxhI.ihPazp8l24Cq2j3RKETTvG.05lisi9XQbjomy78s6jQ44U3qedvQXM1zbmyCzKkJ0LCb7NhdNLN00pW1+Hp5LsHElLt3x.5004ylbM2GGKvZFe5oL.1L.Aa6mFhtbwP2e64Gb0xIv+5A4Q0Ehuv2UakWZgBmNe3b46.Z+OFSXZZxRt+0a+i2tJ2cyU19yd1J86k7sc1l70X74ztYZsfC8rlJs5ykz+xTLWAWapCUfqxRLZXa.VnhMqJWu4lxG0s7Ib65TeEQKYCEbv4Ej0p4BiNLJZ8g3DJGdXZ8xNhFS0+GxNFetPBYHyqcEkkirAvoNh1UHgy1JG4mlk3RDFv21xxQ+KrH8rSf6YgYvGvOHnYi123W8OR9.a2.UyrrCgYyKxM4Qn959uEV4P1IhKFAiCgBvOT6FSwRxrtXYWQFOxMI2JXnPlmOuojk0P2Tx7L8sjV4ZzEljFxy26O8PnYT1zYZC0od19wE8S200Ocu79ImmrcRk8ymrUrcJoX6ziOPSuTaL1NnddajBv6.tq0x7LLSMTj.ACKAa8Jgt8y5vBEhnrXrd0sLL6ekK.5SV4ocyy2Pcj9ph6m8Qr5Qy24pGenP799iXZxr0iwRqAivfu+OvX9Baete+ISnD8R.ts+wuXS2N68D9SDYlAuCwZICJP7gt2wv7PBEhNmSiUlpsRlhMGcSCsICLlxirDuE9kKrkg1KWXq4BQIXhT7Zh6QMyJgehkCfItck4xvt6.cPKj8gth44DXC0WSHq5paY3tapgs2TC2aSMb+M0vGtoF9nM0vNueCM+ADGloEIt1FDZ3n91WO875ywPEnsZE8u.cyl5YA
-
RE: Start timer based on the values of the buttons in an array
@d-healey
Thank you, that worked.
For the “UI” example, the code is as follows:Content.getAllComponents(“^(?!.*UI).*$”);
-
RE: Granulator Envelope
@Straticah
I am referring to the general amplitude ADSR. I took a look at the C++ code. If I remember correctly, the parameters Attack and Release are present, they are just not made available to the user via a slider. I am currently finalizing a plug-in and therefore do not want to experiment with the HISE C++ code. However, when my plug-in is finished, I will try to implement the sliders myself. If I succeed, I will be happy to let you know. :-) -
Disable the “Skipping changed() callback during onInit for...” message
Some of us would like to disable the “Skipping changed() callback during onInit for...” message.
To do this, please open the document “ScriptingApiContent.cpp” and comment out the following lines before compiling HISE:
if (!parent->asyncFunctionsAllowed()) { debugToConsole(dynamic_cast<Processor*>(getScriptProcessor()), “Skipping changed() callback during onInit for ” + getId()); return; }
Just like in HISE, you also comment out code in C++ with this:
//
All the best
Oli -
RE: Component wasn't found
@ustk
I have found the problem. I had linked a button. This button appeared in the component list before the button to which it was linked. Of course this cannot work. :-) I removed the link and now everything works. -
RE: Maximum number of sliders in SliderPack
@d-healey
Good morning David,I use a large slider pack.
One reason is that I have two “general envelopes” that can be used as a modulation source for different parameters. These are basically created as global modulators in a global modulation container. However, as envelopes are not always reliable as global modulators (for example with pitch modulation), I had to create dedicated envelopes for many parameters and could not use the global ones. However, the user should have the feeling that there are only two global envelopes. That's why the parameters of all envelopes are controlled via the same UI elements. Since the parameters of the envelopes (attack, decay, etc.) can also be modulated, this results in a large number of modules, which is why I use a slider pack.
I have now packed all the modules to be processed into a large array (in a specific value range). I have arranged them so that, for example, every fifth entry in the array is an LFO 1 modulation:
150 Attack LFO 1
151...
152...
153...
154 Decay LFO 1
155...
156...So with the help of a little math I can access all parameters via the same UI elements (the slider number in the slider pack matches the array entry of the module). Therefore, using a large slider pack was easier than using a dedicated one for each layer.
Did I make that clear? :-)
Why do you ask?
-
RE: Panel positioned according to the Eq band's handle
@JulesV
I have opened the snippet, and if I understand you correctly, it does exactly what you want. Please add a band and move it.When you do that, the
pnlBandInfo
becomes visible and moves with the mouse and the band. Just like with Fabfilter ProQ.You can transfer this functionality to other elements of your user interface to exactly replicate the behavior of ProQ.
Latest posts made by Oli Ullmann
-
RE: Start timer based on the values of the buttons in an array
@d-healey
Yes, that's a great topic for a video! If I had known this earlier, it would have saved me a lot of time and programming effort. -
RE: Start timer based on the values of the buttons in an array
@d-healey
Thank you, that worked.
For the “UI” example, the code is as follows:Content.getAllComponents(“^(?!.*UI).*$”);
-
RE: Start timer based on the values of the buttons in an array
@d-healey
But another question:If I use
getAllComponents
, is there a way to select all components except the components with a specific name?In my case, I want to select all components except the components that have “UI” in their name. Do you know if this is possible?
-
RE: Start timer based on the values of the buttons in an array
@aaronventure
Good idea, thank you very much! :-) I'll try that.@d-healey
Did you see that I was talking about the value of the buttons? I don't know how to apply your suggestion to buttons... -
Start timer based on the values of the buttons in an array
Hello everyone!
I have an array with several buttons. If ALL buttons have the value 0, the timer should be stopped.
If at least one of the buttons has a value greater than 0, the timer should be started.
Simple task but I can't figure it out right now. Does anyone have any ideas?
PS. I could of course implement it in a large if-query, but that would be very awkward...
Many thanks
Oli -
RE: Panel positioned according to the Eq band's handle
@JulesV
You're welcome! :-) -
RE: Maximum number of sliders in SliderPack
@d-healey
Good morning David,I use a large slider pack.
One reason is that I have two “general envelopes” that can be used as a modulation source for different parameters. These are basically created as global modulators in a global modulation container. However, as envelopes are not always reliable as global modulators (for example with pitch modulation), I had to create dedicated envelopes for many parameters and could not use the global ones. However, the user should have the feeling that there are only two global envelopes. That's why the parameters of all envelopes are controlled via the same UI elements. Since the parameters of the envelopes (attack, decay, etc.) can also be modulated, this results in a large number of modules, which is why I use a slider pack.
I have now packed all the modules to be processed into a large array (in a specific value range). I have arranged them so that, for example, every fifth entry in the array is an LFO 1 modulation:
150 Attack LFO 1
151...
152...
153...
154 Decay LFO 1
155...
156...So with the help of a little math I can access all parameters via the same UI elements (the slider number in the slider pack matches the array entry of the module). Therefore, using a large slider pack was easier than using a dedicated one for each layer.
Did I make that clear? :-)
Why do you ask?
-
RE: Maximum number of sliders in SliderPack
@Chazrox
Yes, as David described, you can use it to store additional data without a dedicated UI element.