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
-
HISE as a 3D renderer
Hello everyone,
For a project, I need a 3D cube that rotates. I asked chatGPT if it could help me, and it actually worked! :-)
I'll post the code here in case anyone wants to play around with it.
I'm still bothered by the fact that the cube changes size and “pumps” when it rotates. I still need to take care of that. Or does anyone here have any ideas? :-)
Have fun trying it out and with matrix multiplication. :-)
I have translated the comments into English for you.
All the best from Germany,
OliHiseSnippet 2102.3ocsXzlaaibkxIJsVc21t.8.Lv+nfxlRQTV9q0caW+gbhPicDrbbiqgvhQjiDmZJNDbFYIk1Tz6POM85zSPuAsu2LjTT1JYyZfJaQQ99ddeMyicSDdLoTjXUpxUyiYVk9px8lGoBNIfxir5bpUoeY4yoREKgX.c77XpTx7sJU5YuBATZ8mao+7e9CGSCoQdrEfrrtVv8XugOlqV.s62+G4ggmQ8YWwGWf5VeeGOQzIhPwDvddV4FVwTu6niXWPQxVqr0qox.qRaV1c2lC2ys0.3uCZtaK5fg62XeW2CNfxNXHqoeqc81m1nUCqRunsOWIR5onJlDD5wB+48BDSiLJ3ZtjOHjgO3Z0CzrAr0IA7P+tYNGokUom2cgq5YFW0uo74bedN7EtresFAYAGEcZkV6yYRt+DLoRELomaLouobOuDdrZAFzd9Ek6DAQvgTH1TzTLzZs1+5qJeh.nHRUeL8N1YIvC4bXuaiFND3R0CqT4kujTqVMxkBv34QiHaeJwax.FgGQdcmdsQjYzbzDUfH4aIdAT0q5dEYJWEPnjPtRExHArvXxvDwX.jjONFAMYLMhLfgxEkCJH62Fq3hHZnCYnHgHCnIwPpXHOhIIBPo7S61oZkLqWxTuSxdMeTvkLoHbBx6YhjtzHVnzVkLgktH7RXf2mDiHp.IcRE4dJjhCqEMwjuijISpuuFj8F4X2vg31.+BRKGHpb6Mlx8UA.9s2eEHCXfko9TXogghom.WG.Y8RfpMNJLjr.Ppo2idOijnC.fCPhYQn62rTVHRephVmFMJj8dXwzndiCIDBv9kYbNYL48qj9a9jzeyCoWFyX9ox2cmCKRubDS5ELkG4yGcGiqVIqoppYiCeHZLBeU.26NHPKApbquiY4iz8sj8I2yRTPqEIwl4OhQBYQif7qlNDOFl4RhE7HEwtgC7W0pEhwW29xq5AR71JqeaMWG8+8cH2RV9dR180VbOn9.NlUjyJo.qjBrRJvJbu1SduHIhUouYYzFLZv1oRH14ylAgOdBduw7JZusO8Usyr2FNfbu00oIbsoy1v0scZ7.CqkyN.7cb1Ettqydv08bZYnwXAnXZoEyNZwrqVL6YLxdPnBDSpUhUofub3jHOcLsBOBCL4.v7v2ei88ND5L367pU9qUVG3aVdBZk0CEdzPh2LXIbNUET2SHsoyfj4TLxbLRdzRXPD2eai94.lqA31eSPZ0f6Z1eS4rbreHCKHwsLX8.rZCZ9iMn4KYPyKXPyWxfJfYVS.CY1l.uaQ9vlx4KzMho1L.jFi2bTuIL0jjHxsyfrx4N.MvJ4iZ+ZWVBj+CtPnTNNQ7WXFuYseO4h2d44G8lN+41mZpnIdBQhOOB2q.xlqW2s5iBBoR3JwEhjw1wa6Pl5PBbHRvxXYgjSf8PSnDwvgPyFrY5TZhOQJHJn+LIRnBv9tbIz.FtyG.yHdZdJ5ei2FbqvRrETNRx+.heCCsDeNzQBNCvFYbMD3RaHjWR9PAdzbcl35ZHRP0YzGiQc6ojMgFC6TETEnxF82bnt4RLeFzjKiRLNYGjQYMjR2knjXeCQIHShqtHX.x+kn+A3Fxu6eXtsLFbdfk7AludqF+D5ztPRfc0rXFr6t5RArmRDz.53IvtwjeqlL81QP3RErbK8hbXmEsrGoiHXk8Tv9A2tr9Hl5Og6aXioZHlfBXdsdSibTxrjywPxIFmqBN.WrcMXiBnqHreAIympi7cSXwzjz8LfUmtynzHM5rLMUX+hTMQm+Xb2f40HxKuFaI0eQKePvXKYPtn2yFogic2OD942Y5pU2zjFfr0VPDY8Kutd7DYfsoIhlja48y6kTMs103py8wD6nEQpBUGUMFlljE6da1n2DHQ4kabLiww.iS2gM23XZiCBQFm.P1kWeqljaY8gTQrcjF0fGfxEQkh6Hrevx0kz7xxpYR33GS0fhTAjEq6ConIpKXS6MYfdkbTyawt9vOt80BSSkdKSg8wFjGmg7iFuXuPLMJbNwmlbGKRWeimqXThXBTtaKROnEr1GgIuligaa9QVGO81QgwAzbHCBAtcfZul6fgJfqgvo5uDVJ1YotuAqSOFkuztQd7TWxfmZ7KUSSCf8jPMcPphxqMw0sCY0pyoPt6Rml.jwGSOKktTsFNEBbP0NQXxhjQzY5PscBCUzx0zZZyNS1hhZcM8pO70VeGYkmZ5vUyvMeJFtYIFvZZnL1tvh4uucCxYc6AM8DSfV2PHlAGgvc2+8+3e1pwXo9QVzglEMQuPv98uqSsAvp1ud0hqTLiSSh81aW8v7sZDQWHTr2ltfgNijGhZ3vUhCqGSDggf.WEZip9LLZGMY7.VhCbjnvIrbBgAeVdZpW7kMMkmo8PABEQch3p2FyRe9LQnONkDd+im8xJs+Bb265bJDivwwRgAzEiGNEMmRmxtGNkpY3r0KeJSdmRDqocbrHBkPoelRi8qyFcCC.Vbebrs7.h0LqRkKUAT27razSZ.B8E+sRlwmMSWTDxxSTXU5WUdoIJfIwez.jvnqB+IgT0xyyhS5mh.BKKMDINnXjjqlW7MA7SXH2Fe1gb+RMwuobWtxKX013ZqvFg.1+OrwzWMvWWt8vgPqvEF3yKe16epuGfeD0aNhwH3TAIbLO4hIi6AMN8Xf1ivIewTl0vjVyyMvmQOPOVju9g+K7IEoK9boTjtYHsFS8RD+fmoXDe4C+bMDvlhzubl0KeN9Lw0RWfVzOOl6y+AOukE0iXr4SkwsepL15ox3NOUF28ox3dOUF2+GmQ7UUczDkXrorwx57ts0czJUpcDEx.0YqV+O.znjCC
-
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: 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. :-) -
RE: Change the slider name and value placement
@d-healey has already said it all. :-)
In addition to “getAllComponents”, the following should be said: This function uses regex to select the corresponding components. It therefore makes sense to familiarize yourself with it.
With
const comps = Content.getAllComponents("^.*(Knob|Button).*$");
you can, for example, select all components whose name contains "Knob" or “Button”.With
const comps = Content.getAllComponents("^(?!.*Slider).*(Knob|Button).*$");
you can select all components whose name contains “Knob” or "Button", but not “Slider”.And with
const comps = Content.getAllComponents("^(?!.*Slider).*$");
for example, you can select all components except those that have “Slider” in their name. -
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.
Latest posts made by Oli Ullmann
-
RE: How to reliably save samplemaps in preset? (Expansions)
@Christoph-Hart
Ah, I see. Thanks for explaining! -
RE: How to reliably save samplemaps in preset? (Expansions)
@Straticah
Why don't you do it this way? It works in my project.First, get all the sampleMaps into the project:
const sampleMaps = Sampler.getSampleMapList();
Then fill your combo box with all the maps.
And the combo box callback looks something like this:
for(m in sampleMaps) { if(m.contains(combobox.getItemText())) sampler.asSampler().loadSampleMap(m); }
The combo box must, of course, be
saveInPreset
.I think that should still work even if you add new sample maps to the existing plug-in. But I still need to test that.
You also could do:
if(m == combobox.getItemText())
-
RE: MatrixId disappeared for linked sliders
@Christoph-Hart
Unfortunately not. I just tried it with a new project and it's not being applied. -
MatrixId disappeared for linked sliders
Hey @Christoph-Hart
In the previous commit, I was able to enter a MatrixId for linked sliders in order to control the modulation from them as well.
Since the last commit, this option is no longer available. Is this intentional? And if so, what do I need to do to be able to control the modulation from this slider as well? In other words, how can I assign the modulation from this slider and how can I see the modulation values in the LAF of this linked slider?
Many thanks,
Oli -
RE: Matrix Modulation Feedback
@DanH
You can do this withsetMatrixModulationProperties
HISE | Scripting | ScriptModulationMatrix
A class that encapsulates the management of complex modulation systems
(docs.hise.dev)
-
RE: How to make dynamic expansion Artwork accessible for Webview?
@Straticah
I can't help you with your problem but your browser looks great! -
RE: HISE / WaveTableController -> Audio formats
@d-healey
Okay, I'll try that too. Thanks. :-) -
HISE / WaveTableController -> Audio formats
Hey everyone :-)
Does anyone know which audio formats can be loaded into HISE or the WaveTableController?
My use case: I want to load files into the WaveTableController and convert them into wavetables.
It works fine with WAV, AIFF, and MP3 files. But does HISE understand any other formats?
@d-healey do you have any ideas?
Thanks
Oli -
Flex Envelope Bug
If the Attack is set to 0, a minimum value must be assigned to the Hold, Decay, or Release parameter. Otherwise, no sound will be triggered, even if Sustain is up.
Here is a mini snippet:
HiseSnippet 1053.3oc6XssaaTDFd1XuUIt.pUPoRHgzdYJpB40w4j5EMI9PhE0IVYCs8txjc+c7nr6LV6NqoVHdd3UfK4Qfm.fK3A.wK.7O65CyD61ZrHosH7EV9+z7e76em0chE9PRhHlXU5rg8Ah0GX6MjK6UqGkwIspSr9H61zDID6jy5fg8oIIP.wxpvgJFVqUjj84Od7AzPJ2GlxhPdpf4COgEwjS41YuuhEF1jF.mwhzzt5ds7E7ZhPQJFOErKS5S8ujdAbLUo1J1jinI8HVegcE2M2savla3tSkp6TdWWXqM2Jnav13WabtafavNA6VcanJw5VMBXRQrmjJgDhUwCDAC85I9VdtCdJKgcdHnHbIdnmyY2TDFnRQEWRsdrvfNiKTID7P6LsrUHur8I1sYArI7mV9tSl.moVnW.sVwL7JXDdt5gWYsvaNgjkVHULOjtqsmeLqubpDU7ba6Vbra1kh8I8PIWWh0OYWSfJvkeYD8RnYLRLwf02pb4G5fe8fG0Mk6KYBtiferPBmvW+Ak9tRqU56K4bUQc6NWYJ2DKBCg34JVMZD+5LbcdZz4P7CcFPCSgIJhouYM09UWS0a494YslhBdKNSdRef+pFDHiJU3u95V0oRppQLhGpWeHVxTgfUcX.BCxaKqYWGRtTJ5i.gY5Y3zhHHMjJMGgT.sQBvZfQeS0b3IL4Pcf3+ZyUKZHdW6NLoeu4GiqLmXDqTWGw3Hz3GZ2naWvWNM.KZ274WOPOc2uZt6+L6CCEmSCmVnvYBLRfbH3mORryD4NSTv80rf8mWzEr8W3ErWErTbw.Kug8iEema+3hNG+wyzZRdeCsU3+1nsSEoRF+h1TYL6k318iSi7vwYe.8NmCgpM9Vqn1MmSWVQqp.d.OHi3uvOiD5pnsFIzcrPR9gmuPWOeued9da6mQG.YWSJKauWFcWQbjyg.hgUMqaXb7I9RLDNKlxS5KR.W8S1ChXmI3PhA2qXQk4ZgA25fLkadz4rLzRUJZhkBM8VcuwLqnyrCkabXHswI0V0eGS9aOtAmhSHd.l4Amj3iEFUcVGG1IMLAdFKP1yU2vorqny9HZb.1C8MPIEtNVGdq2aWG9V7lGF2n8NiAdMCgWt+Q08NMK79zLZmLFNM3CfP7NWlHu1BtneOAmYzmOEP.9EW.FiOyMe1WJw2AQ21ivlsIFvmZrp0KMQdkWL5THDnIF3crnBy5nm.XRnqVN6ZowCfYbpN2u4G+8ecraLz9G9ye4eRSw8+e.0MEzB2u47N8k5uuMtmshSVqz4sSu7l3o82D9Hh5GKdge9atp1tsZFGLu4Y+2FqY2VQ63RxdaV8hYD97fW36adTyXXkk0vMVVCqtrFt4xZ3VKqgaurFtya1P0iq2OUJhxwF3h8NMxt4nkU9MVxfIj+1k38w8
-
RE: More audio export options
@Orvillain
There is an audio render snippet in the snippet browser. Maybe you can build your own exporter based on that?