@David-Healey Oh weird. Must've deleted it somehow. Fixed.
Posts
-
RE: Plotter with a thin lineposted in Snippet Waiting Room
-
Plotter with a thin lineposted in Snippet Waiting Room
HiseSnippet 1768.3oc2Xs0biaaEFz1LSrSSaRZlN4g7.FOcxnsxUQxV1RNYxDYKa4U6JsRwR6tYaeXGHRPIDSBv.BIaMc1o8w9yK+Fxuf7Tdc6AjTRfwZscT1la7AYdtA7gCN2n6JENznHgDYsU+ogTj0evt2TtZT8QDFG07Dj0aY6H7EREMRgNdZHIJh5hrrV+LsBVatAJ94697iI9DtCcAKD5IBlCsEKfoVvsasGx78aPbo8YAFZWtVSGAuNrUiAvrtcQTHw4BxP5iHZ0VyFceRzHj0eyduJGP71sREJ06fhGVoh2AUbH6Rok2qb4AtjA6VspS08qTEY8Fm5xTBYOEAPOxZiiEtS6MRbIOYCdBKhMvmpIJg5A6bB6FBeW8QTyEUeDy2s6LuTDBYY2cgOa8De16a2l4xlyegu6chEfWXgoCzZsrva8LvqjI7JZ.uk.o0LfzFytF6KI7nPQDUlBE7BN3R3LPYtjiBDi4F2VeTseDnrzMhRz0A46Z2yQxBUKjjDv0jqnROBDLYBxDcQq88qYWW.ZvUEBHWPaHAh4Vja+hE2AC+buOcKHdJRgmPjXehG9yvyrxQRgyRKgCwukPbwQb2FTpeNvhs.EKHoCYQvx0XL2QwD7ba6JIWdDm3OEbcGCQkCkfWxc6cvdyTY3NXwfu5da8u1BCOCK3Aw3G46mq3UMZTJ9AV8Wn2g6vVblj8JV7MgiPjvmVP6Tjp9xwzbdD+H5rU+1W7tD0naB4QTURRXtj+DU3xQLkdCzxi+4i+XrdEwpQTLIcYwgv5hIQXBNRIEWPcw9LNEyfq.JwEK7.IZuBHf.9+zcSuNZDkCvPA8RDilBZM1Auaghy8ZKtKa3KHJFeXelOsjws5PMvCBEbfH21YzZa8Rjgi9Xds..v4cuOcliAK3ORnnc34hc7a8hsv+PQddKUlFPRAbRkKUrtrm7lLLGebv.pbG3z5OlNWQHqIaln8cKSzIw+Xnnf2jyTcBo7WUQNTpSEd6wMOgnHPQFqTdfdgPrGSCAqSnSfR7IYyaZeBM5BkHLV2zaBnRjJsFYR9q40.hAI1+I6L2LnqL6fLcNw+4I0RAvrcqquPAg4nACm00Xy2XlcPDavBtu7ku7+lk6tlJGe.sFYqSA1dtano61eBd6VM5faKbG6S.Oeos2QqRStK8JP3euTL4wi87nxVT9PHy5SvkKFyE5h3Kt7oB4EQPiLJHHNQcqWftj4pFM+bU6eWaDkMbjQQ2mUSQuRc8C0RpfBMXlANytN5dyoBfPqLUQ0UJ4QL0Tyd2u9ZEYYfQ6DL9go275.+mPjLBWMGzw3Emp.VqANUECu9si+zVCVeq8h7oPIMDpizWz0mLMWDIHzmdNb71Am7dTWnXtuv4hqmJFlbFhklaP706qrHvq85C+HqBr58i+okieWCFeW6tLkynkGMt1RtM0yy7ZJZDc8Q0da6SgqSG0B.tgciu7+OykYt8+wjs+sr6AcEimvNdy+Kwz3mRlPwmQ4T40C3yNm82bWmyN7NOmcGGEr8yGAzbg6QCX8g53QlLebDLyE8qOWeaZxutfHWpnu6ya.GxkZSOhZrLNr3GN4IDFr9MM9doUb78M9U236+Vnrt4WXr4LL1ioqidJeB0GJWDiw2CpO3QF6qlwMarbaAWDNRvYNlWzmSUR1vgToI1W5A5HkBF+dAm2u14TeJwLn8uVqEDrQjfehth9hR28Vb2z80GXm.2j1Z+hbuYFZ8NIP01FFoIMdJ6vM2NtzoviobmLUq0kXZxM4nql4IjAosLladK5PXiL4zmBiIBUCcxzLOPHTihmGLHS0HXV8vS4D3j6Zpe2QP..zrEFoOSoEXY6KZSzeJTccmbSgMGxERZRC7L0vFGoDAyN.Hqu2tT0hEx9Loi7nm15P8qGVOltH8AEOzP9Tm6WO+jKuxau5Kn61lFseBcohEOM+8C7GWIgNre9l485JNtbBcmxrGkeh24mlJu6E62Iu2f+wgo1eYiAeQ75mRe0fyNOuAdJ8.uGmeuprAoxeF7juvdMdX55e34bm7dmc7fTZ3GOS6Q8Tzvjoh+m1GTtvfp7tKNulOdU4Sh5T+ocdPdPoIU5M7qOqXm1Sa06v6epxc+5J29S5.ucR9SfW2Ow9C9hgO7vBnWeojqcGSI+ywg7yis0A++BkMd6nbdx1uRQ4MNX25+9dvtyEi0evZaBz3B9dU6GMNnGLOkCE1cNm5q+5bq0z0SRnKpoSFnh6FS.eR5KSEVRSakJrzLg+rrGADGo34NIewgNQ5Mi4.mad7+00MsaqowkPweEh4cY.LYzycbxtTWyvcWUC2aUMr7pZ39qpgGrpFVYUMr5sandv0iFC8xRRMQn1cOMoht07VnVqi9eJuzmhCThis gives a plotter LAF like the following image:

-
RE: Delay / preloading when moving loop handles or toggling reverse on my custom samplerposted in General Questions
As far as I know, based on conversations with Christophe, this stuff is unavoidable. If you want any of these seamless start/end/loop/direction changes, you need to write a custom sampler from scratch in c++ or SNEX, and use it in scriptnode.
-
RE: Invalid use of incomplete type vSIMDTypeposted in Bug Reports
@David-Healey Well I don't know what else to tell you: https://forum.juce.com/t/int64-t-vs-juce-int64/45358
As reported here - it is a typedef issue, specifically affecting Linux compiles.
Actually, I might have that wrong. That thread is about juce:int_64.
-
RE: Invalid use of incomplete type vSIMDTypeposted in Bug Reports
@David-Healey said in Invalid use of incomplete type vSIMDType:
@Orvillain said in Invalid use of incomplete type vSIMDType:
I think this is a Linux compiler thing.
Linux user here
Yeah I know. You're getting the issue with the dev branch but not your fork right? Your error:
../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:85:11: error: invalid use of incomplete type ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’ {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’}That is telling you that SIMDRegister/SIMDNativeOps is being used incorrectly. The only thing I can think of is that it is being called with long long int, which is correct for Windows and Mac... but on Linux I think it should be called with long int - not long long int.
I'd check that line in your fork and dev branch and make sure it is the same, if you haven't already.
-
RE: Invalid use of incomplete type vSIMDTypeposted in Bug Reports
@d-healey I think this is a Linux compiler thing. On Linux int64_t is defined as long int - whereas Windows and Mac it is defined as long long int.
The compiler is throwing a wobbly because of that.
I think.
-
Sampler "Sample Start" modulation doesn't support the MatrixModulator??posted in Bug Reports

@Christoph-Hart - is this a bug, or is it intended???
Group Fade does support it. I'm just wondering why?
-
RE: CSS :nth-child() supported???posted in Scripting
@Christoph-Hart said in CSS :nth-child() supported???:
I can add an attribute to my parameter dictionary for scale/unipolar/bipolar,
I've added a method requested by @DanH where you can setup default properties for each new connection (so you can eg. set the base intensity to 75% or whatever floats your boat.
siiiiiiicccckkkkk!! Nice one Christoph!
-
RE: CSS :nth-child() supported???posted in Scripting
@Christoph-Hart said in CSS :nth-child() supported???:
Ah sorry, no you can't. The inspector shows all available selectors and the ID isn't one of them.

(The matrix columns can be addressed through the ID but I thought I've added it here to, but apparently that's not the case).
But yeah if you're almost there, just go with your own dragger. Note that there's a snippet in the example database that also gets you 80% there:
https://docs.hise.audio/tutorials/ui/index.html#drag-modulated-parameter
Yep, been referencing that :)
I've actually got quite a nice dragger right now. The UI is basically done. I just need to setup all the matrix connection stuff. Also I realised this probably gets me a cool benefit - I can add an attribute to my parameter dictionary for scale/unipolar/bipolar, and set the connection to that by default when the connection is created. I couldn't see a way to do that in the floating tile solution, but confess I didn't investigate very hard.
Thanks for the confirmation that I'm not a complete idiot

-
RE: CSS :nth-child() supported???posted in Scripting
@Christoph-Hart said in CSS :nth-child() supported???:
@Orvillain you should be able to access them by the #id selector individually, no?
If I can, then I'm stupid. Coz I couldn't figure it out! Is okay.... I'm three quarters of the way there with my own matrix controller now!
-
RE: CSS :nth-child() supported???posted in Scripting
@Felix-W Bah.... I'm just gonna write my own modulation controller then. TBH, I prefer that anyway, coz css still messes with my head.
-
CSS :nth-child() supported???posted in Scripting
Is :nth-child() supported in HISE's implementation of CSS?
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:nth-childI'm looking to do different things to each of the draggers in the modulation controller. But it doesn't seem to work?
-
RE: Updating matrixTargetId attribute on a knob - results in modulation not being visibleposted in Bug Reports
@Oli-Ullmann Yes I think you're correct. I checked the docs and there is a line about it not meant to be a dynamic state.
-
Updating matrixTargetId attribute on a knob - results in modulation not being visibleposted in Bug Reports
This is a bit complicated to explain. But basically.... I have a bunch of hardcoded effects. At initialisation, I create knobs in my UI.
I have a menu that loads an effect to the particular Hardcoded Master FX slot in question. When this happens, I assign the processorId and parameterId to the correct ones, and I update the matrixTargetId.
If I do this .... then my modulation for that parameter works audibly. But the UI animation, hover states, and modulation indicator completely break and stop working.
Now..... if I set the matrixTargetId when creating the parameter, and then NEVER update it...... it works fine.
I know this is a bit hard to get your head around, and maybe I'll try and make a minimal example. But as a fundamental question, do you support updating the matrix targetId parameter??
-
RE: Oversampling pitch shifter a bad idea?posted in General Questions
Not sure, but try putting it in a fix_block container???
-
RE: Transient detection within a loaded sampler - SNEX ????posted in General Questions
@HISEnberg said in Transient detection within a loaded sampler - SNEX ????:
@Orvillain Nice thanks for the tips! I'll have to look into spectral flux envelope it's a new concept for me. I'm about 40% of the way through this process myself.
Just curious how are you extracting the FFT information then broadcasting it to HISE, are you using Global Cables for this? I am trying to theorize how to make the jump from detecting the transients to updating the HISE side (transient markers, snap grid, etc.). I'm guessing just wrap all that info into some JSON and use GlobalCable.sendData to update my HISE interface and scripts!
Also agreed I'm almost exclusively doing the bulk of DSP and advanced analysis in C++ then using the HISE API and Interface builder to handle the rest, really efficient and powerful combination.
Thanks for the tips!
Yes exactly. I'm doing all the clever math stuff in c++. That gives me a bunch of transient time positions in samples. I then feed this list over to HISE across a data cable using the cable_manager in the c++ node.
Christophe had a good template for this somewhere. But in essence when you setup your node struct, you inherit:
using cable_manager_t = routing::global_cable_cpp_manager<SN_GLOBAL_CABLE(-389806413)>; template <int NV> struct data_node : public data::base, public cable_manager_t {The numbers there have to be the hashed ID of what the cable should be named. I don't really like this part of it tbh, but it is possible to setup.
Then in the constructor:
data_node() : fft(//put whatever inputs you want to setup into the constructor here) { // this bit registers a datacallback function. As I understand it, any time data is sent, this function is triggered. this->registerDataCallback<GlobalCables::dataCable>([](const var&) { jassertfalse; }); }Later on you'd do something kinda like this:
// Create the JSON object hise::JSONOBject nameOfTheObject; // Fill it with data nameOfTheObject[String("whatever you want the key to be called")] = sourceDataHere; // Send the JSON down the cable this->sendDataToGlobalCable<GlobalCables::dataCable>(nameOfTheObject;); -
RE: Need Help Exporting Mac Version of a VST3posted in General Questions
Use projucer to create an Xcode project.
-
RE: Transient detection within a loaded sampler - SNEX ????posted in General Questions
Oh, and once I got my head around exactly how to interface c++ nodes with HISE, it has become one of my favourite ways of working. I pretty much just jump straight to a c++ node for any DSP or advanced analysis thing; whereas my very first transient detector was written in the HISE JS layer, and believe it or not it was quite good!! A little slow, but it did work.
-
RE: Transient detection within a loaded sampler - SNEX ????posted in General Questions
@HISEnberg
Yes I wrote a custom transient detector in a c++ node, and made sure it utilised an audio file, which I can load in my UI using the audio waveform floating tile.I implemented spectral flux extraction:
- Take your audio.
- Perform an FFT on it.
- Extract the spectral flux envelope from the FFT.
- Downsample the spectral flux envelope (optional but can help accuracy)
- Perform peak picking on the spectral flux envelope.
I used the stock JUCE FFT processor.