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
-
Deferral of included scripts
Hello everyone! :-)
If I have deferred a script and then import other scripts in this script via
include
, do I also have to callSynth.deferCallbacks
in these included scripts or is it enough that I have done this in the main script?Thank you very much
Oli -
RE: LFO Waveform Morphing
@theovintagesynth
I don't think this is possible with the Stock LFO so Faust/Snex should be the way to go... -
RE: Table.setContentCallback -> What happened?
@d-healey
I got it. Thank you! :-) -
RE: Table.setContentCallback -> What happened?
@d-healey
That is interesting! Do you have any idea how I can print the value?Console.print(Engine.decodeBase64ValueTree(value));
does not work. -
RE: Table.setContentCallback -> What happened?
@d-healey
Have you had a look at the value supplied by the broadcaster? I have reduced this snippet to this. Do you have any idea what this is, or how it can be put to good use?You must add, edit or delete a point in the table so that the console prints the value.
HiseSnippet 1427.3oc2X01bSaDD9TbTKVTXJsLc5GupoePzIMXSBE2xvfieIPllW7D6.sCCC8hzY6ahzcpmNYhGF9y0eA8mB+CZ2SR1Rp1Dndf1Rym7s6s69rub6tJ8jBWZTjPhLrFLMjhL9Dy9S4pwsGSXbzdcPFet4.xo9TbKof34RhTTIp0zPRTD0CYXT4A5KZTccTxeu59sH9DtKMmDB8HAyktOKfoxo1q4Ox782k3QGvBJb6satmqf2V3KhAPUwrFJj3dFYD8Ph9ZqYhdHIZLx3aL2h5cqFMH2d6s1xsw22v8NtjFT25mdmZ2hLzaqFTuS8191aSPFeTWOlRH6qHJZDxX8VBuo8GKdNO0.OhEw.OTenNpOX4Tx6J78ztnlJp8XluWuYQqHDxvrWdrqRZr65lGv7XyomGC+zDF3bIJF.MVqL7pTBd0KBuZEf2RfjQAHsdJjtlYeWIKTkyQimKatGGxiCIPdpHTRuKZseqhYaAbCtZy.xYzckvg4R3rcsZaf2pVsabWKKHWEovgBe.wjPZZox8vI0PaNhpRHL23N18lcS6aLmsSAMEylohY..tUaQPnfCGbry3aCRj8yMkzgT4.QGhh3TFHZ0Zcya9U3Guyf1ODevQcNY+te6fcZseWfbwJZrGcHiyTLAOCHSHRbfvK1OUUOlnbGC26d3t7QLNcSWIERWETgyKrvXalm8OfsWTP6MzbIxQQ.+mXGNKhXuAHC2idt9GSH9wT6mZ8RMvA.RTJh6XrRfoS.uGqSoVKp6MSu2.gNN4SOOIRXmFbxhhf1eRgX+SAiUSaQ6xVZHSBttOC7GNUtTS44seFaGnJvlFDplBZZXL2UG8bl6YafS7qMvId0MdgUU.KQB.SgRFjJSIe2TmMIKcb29cGfacxfAGcnEi6Cg445EK3mp3GSizUCbkT363NqpXlIr.avFloXqpUKWL.0IfvNZKBFb4UWyLATblan1De+SgdPNK.APWEv2gBE8HtSBLrdoE9uxZ3vkxKSW9P.cYr0cGkWjfN73fSoxhAA8EgN.kaqX95aqTrqmaZfovEE78fWFGER4utdgnrnIzBZsLTAlWkz.5JYMfRxAHFzlopY1KWTBhKNnvCpbS5wilqlJop4pYpoUrRI3I5wxbV5XQEgNYO8q.cOwLrA3MjJULcnvnCcBLQJsCYUyNznyThvDvmUJ.yLdyv+7hVbZ9get4yYdpw4Dl1bLkMZbgoerlnEs0E6i4Vq4uzrf05zTQOGTxGal79AwhNPD.pkHmlkuVbp.LOR+zlnJOjROJOiAThUZxft6OOholVbT+6rIWusP7Zl8XPenkiw0VBF0UjuGvX179qX1c3PpqJGfqat6O89Y3dQye0TyeYy9PKxjQsIF+KRNieLYBE+.cGZcvq9Err1u+1trV3a8xZG4p.yOPR3QghnRJtOMfM.p3iJR7jHX6B5udrNaVjdaAQtTVu596BN4RkoOQEKSJK1IPDyUkJCpbQ6.VeE2Ab8+ysC3G.O1KslZ0YXrOSu6RW9DpOznNAieFzYdHI1WMiZ4Z4CDbQ3XAm4VLQeLUIYiFQkEw9Rcncz67bVNkq27XpOkTrn8qatOTrQjPbhthwh5+sWYeo4quzLEtX8CP7GtMoq7+5lzkRmWZl806cGo2CELa5WeMeS7RvncrbR5m3tSzz.ccrKwOmXGIaRoFpkqJa17nITYDAdFw3iVwn66npU3kqFr+KUmdrHVAgfCHPDD1Zx7v3f9v.JWJ.PNm5qWF1XM8Plzy0zmSmPw8RN7GveYLqqOajwr9Ll+iXi.hqT7L2zMg0g+KkPA7adx+KjplGnOiqu39uAvnlm45VVUKH3sVUA2ZUEb6UUvaupB9cqpf2YUErwaVP8l.6DqDAouMfmx85l78JFFc45usH4YB5OAj18qQ.
-
RE: Table.setContentCallback -> What happened?
@d-healey
What else I noticed: in the ContentCallback function of the table there is the variablechangedIndex
. However, this always returns-1
.Maybe this is a bug?
-
RE: Table.setContentCallback -> What happened?
@d-healey
Hey David,unfortunately I haven't found a way to know if a point has been added, removed or changed.
I do have some insight into the value with a “ComplexData” broadcaster, but I can't do anything with it.
Have a look at my snippet. If you uncomment column 22, you will see the value. I couldn't work with
trace
either. Perhaps you have another idea?I have now solved it with a MouseCallback-Broadcaster. When I left-click I add a point (the console prints “Add”), when I right-click I remove a point (the console prints “Remove”). It's not perfect, but it should be sufficient for my purposes.
HiseSnippet 1691.3oc2XstaaaCEVJIpqVcsXcqXX+jSX+PdHMwtIcMqAE0WhSaPyMD6ztghhNFIZahHQpQQ6Fih9Nrmpg8y8nz2fsCojskhMRb7ZWwVPKfH44x24JOzGJ3dj3Xtvvzt0fHhg4ma0b.S1sdWLkYryVFlekUK7IADTMAG66gikDgQsAQ33Xhugo4hOQQnYgkLz+89GWCGfYdjwaYX7bN0irKMjJGu6gUdFMHXarOoEMLC0qWYGONqNOf2C.0hVkLhvdmh6P1GqHaAKimhi6ZX98VqQ7u2Fafu+5qsl2F+3FdOvCuAwq7IOnz8vs8WaCh+I9qe+0wFlWqgOUxEMkXIIFDZMt+flc4ugknfmSiofEpVT1nIn4jsMp2kF3e3POTrggo0gi8WKl3uti0dTe5n8G629B8Anwbj0oYtvEAoxWAHYlARKk.oaa0zSPijiOQgmaXsCChcswPrIKTRn0Xge+ZV04.EL4Jg3SIaKfEi3vc8RkVFsVoRE2z1FhOwRTDO.PLNhjjd7HjNuYkNDodiQJ204vgT5TbzwtYjTO5PQLD..U04gQbFrv0I8bGfizOWQPZSDs3agkX27.QIVAoCRBtBPh2s7lEVcUTI3Su.p2oDejK12u3xnxvVBZmtx5p8QtBRHuOons8pq9snWTsU8mh16fsNd2F2sU0Z61.1NaI.xmzlxnRJmkZE8wBTH2uWPBNdAV50En6QnFrNTFYEOAAh0YDg6asQHGpuyCQNSxnyxpSwhNwv4uzIZn6zYYfGlO4L0G8wA8HNux9cJqF.HVJwdcQRNhzGbcHU9f8jxdkD5ZwUN4.xYZ2nShmMMD.R+kYBbuBTVIkFcxqo1TAX5ATvdXDwTUku+toG6BoPNjvH4.PRs6w7TdO2QV1xHscsLRaUEeqMD3.zDyATEInPlPxAalXtYhSGuSRLB4tGuWLogx1iKNSQrzDpqVzJOSmKR4MLwU4tzggKK.kWb4BNZAkwnbe4npAUHoZP.pNNH3DnEY7kGdNuhtrPyHSY4D3phI1Ensc0qVIsfpncgBoUak1LGAiKuxPS4rwurUXn5GreqF62BUu5t6VqZ8mYmuxdkXUWAc14Pa1cLT6hYcH96nxfJZC3DE+FJXltJsBZGo1p.DJInROT8Yg7oVNU88UNO0Im.w9S2bD8kmJ8GoaWLIKPVFtWfLgGAQ1SvT6+N3+v+F2UJiS3nFMazBU63VsNXeaJK.x+FECPb1IR1QjTaWvCxFURJHTlK3ySWTnv4baBEytpxFPgSuC6PU.MnGqnQN4If.HqL3aetjb.yUCC62YiN+QsaO0yRkU.j7MsiUSEHtHFcY8BOgHx5DTDB2Bl+p0qMaWs5k3XxPHmsCzt3fHR55s4A9pqLUeO4EwFodV3J4ERQH.Eo9B4aldgrNdXPAYTvJsVzPi9rCK4CMi0y4XLRLKlHlakJlZ8jRNSKGaqgglIEjww6nZrqlQHEa.diHBIU4VL2hzGlJKYhgBVaQhOUxizfOMs.bcWN7OKqFGLdwOW4MTeILmlk4uYZXzknZEnV8GFZe040wEaai0RkeoRFsrUEI4LPHelktFxfFuGODDKV.DYtfwjyFASkotiBKyOplZH1zCfjrbyGolAhESkCxNj6UX9sRW37ayJDus0gp1YSGiKLELpxC+HfwzoduoUi1sIdxw.bIqs+o4cD2YW82JQ82vpIzjTOvoV4esdM5E39DzST2mobdkufmo7my5yThl4mobfmDTeKAlEGwiyI3ljPZKHeON6lGGCyXS90iTQyr6WmiES8n2+3sAibp7zDC2ynSKpFx6wj4RCVLebXoYqeX9JhLzOk2frzmfmE8gor5SXketWtUXHFaRUSj2f0mD.8p0X7Kgly5YJFta9D683LdTWNi5kMpeDQBSe0gHxh8oZPUUiJd53ctSkiHADb1L3uqxtPlGV.9Ixb5Kt5uhcpwquwJAtHU0H5+tcrW7+0cryENu9P8qdMYrZrTPsI+fDideYNXTumnexuzS03Agp7XObv3M2RP6mq6Z9rxJUNnOQDigxHJqyb5c+.ksBUtJv9OJOcoYKHbICmdDumDbG6gAuILLk098BaB2b4Q.vxXjfX0nYKnt8IYcI05jqtX95E+E7W5gkUqMSOr7vC+WQGgXOA+0dICFqBEWWuCX2L8OOXAq8TqQkmbb3P3ZmW64kWTSv38lWFWadYb84kw6OuL9CyKiOXdYbiKmQ0TAU6I4gI0IPY8gMzOewzrAS8TCcIiweCfwxfIF
-
RE: Table.setContentCallback -> What happened?
@d-healey
Good idea. I'll try that. Thanks! :-) -
Table.setContentCallback -> What happened?
Hello to all! :-)
Table.setContentCallback(var contentFunction)
can be used to set a function to be executed when a point is added, removed or modified.Is there a way to find out what exactly happened? So whether a point was added, removed or changed?
And which point has been changed?
Many thanks
Oli