Polyphonic LFOs

  • Hi all,

    Got a quick question - Am I right in understanding that the time variant modulators are monophonic? I'm trying to replicate how I use LFOs sometimes in Kontakt, where if I hit a key in-between the phase of a previous keys LFO, they act polyphonically. I can only seem to get LFOs in HISE to act monophonically, so if I hit a key and then another out of phase, the LFO snaps to the original time. Is there some glaringly obvious way of changing that that I haven't figured out yet? So that the LFOs run free?

  • Nope, you're right, LFOs are monophonic (actually I wasn't aware of the LFOs in KONTAKT being polyphonic). I didn't need them to be polyphonic up to this point, but I can understand applications where it comes in handy.

    Polyphonic time variant modulators in HISE are called Envelopes, so I would need to write a polyphonic LFO envelope for this. It's a reasonable request, so when I find some time I might add this.

  • That would be amazing, thank you. For old 'warbly' sounding synths it's something I use all the time, being able to change the frequency polyphonically as well, so each note has a slightly different modulation.

    Can I ask you one more thing? 90% of the stuff I build is for MPE, little confused as to how it's implemented in HISE. In Kontakt, I'd build with group arrays, then have the different midi channels basically on copy and pasted groups. When MPE is enabled in HISE, is it automatic?

    Trying to wrap my head around it, but the only code I understand is KSP, so struggling a little to translate everything I use! While loops, selects etc.. Is there somewhere I should be looking for help? Do JUCE tutorials cover the same ground? Or should I be reading up on Java or C++? Sure there's load of people like me who are a bit fed up after the Kontakt "6" update, but struggling to find enough resources to learn HISE, having no experience of code other than KSP. Are there any more tutorials planned? Love the concept behind this, just need to figure out how to use it!

  • @jon83 http://hise.audio/ - click the documentation link at the top, read everything, then go to the tutorials link.

  • Yeah, I have done, read it all through! I'm sure for people who understand Java etc., it's dead clear, but for someone like me it's a bit confusing knowing where to look. With Kontakt, if I ever faced a problem, there's millions of forum posts that I could reference to figure it out, and the code in ksp is pretty straight forward. With HISE I've got a million questions that I cant figure out how to solve. I've literally printed out and read through the manuals a few times over the last few days, but not sure whether I'm a bit out of my depth with this. Is it a case of just learning the fundamentals of Java? Or should I give up and kick my heels back over to Kontakt?

  • @jon83 HISE script is very similar to Javascript (not java). In the documentation section I mentioned there is a javascript tutorial.

  • Actually you don't need scripting for MPE as it's a native modulator in HISE.

    You just drop MPE modulators at the locations you need and they will automatically assign the correct MIDI channel to the given voice. The one thing that is different to all other modulators is that there is a MPE Panel which can be used to enable and disable MPE modulators from your plugin's interface (so the user can configure the MPE modulation). So the best practice is to drop MPE modulators everywhere you want, bypass them and use the MPEPanel floating tile to activate and control them. If you add a MPEPanel in the HISE layout somewhere, it will also show a help popup button explaining this thoroughly.

    As for learning scripting, David is right and I find Javascript 100x more intuitive than KSP (don't confuse this with Java which is an entire different beast). There are millions and millions of resources for learning Javascript, so if you know KSP, getting the basic stuff is pretty straight forward.

    But I understand that it's overwhelming for people at the beginning. The thing is that I wanted to create a scripting language that is far more complex and allows more freedom than the rather "gated-community" style KSP, but this comes with a steeper learning curve.

    If you're playing around with scripting, make sure you know the Debugging tools embedded into HISE (Console logging, breakpoints, viewing contents of objects by right clicking on the ScriptWatchTable row) as they can be really helpful to figure things out.

  • @christoph-hart Perfect, thanks for this. Was a bit confused as to whether it was Javascript or C++ I needed to learn. Bit overwhelming, but I'll get a few books in and wrap my head around it.

    MPE stuff sounds waaaay more intuitive, was another reason for me getting tired of Kontakt, having to replace all the groups just to make one change was getting annoying! Glad to hear it's easier over here. And totally agree with the gated community thing - feel like they're going down the same path as others have done over the 20 years or so I've been making music. Pretty sad to see. Hoping what you're building here will cater for people who just want to push it forward. Thanks again both! I'll get my learning hat on.

  • Hi again,

    Sorry! Few more things…

    Are there plans for a Flanger?

    Couple of a bugs I’ve found too I think. If I plug in my headphones I get no sound, then no sound when I unplug them either. Have to restart Hise. MacBook Pro on High Sierra. And in the mapping editor on the master chain page, selecting G8 as high note doesn’t work. Have to use the + to go up there. Also, is there a way of just spreading a sample over the entire key range without having to select the keys? I know this is a minor thing, but saves a lot of time just having to click once while you’re setting up and finding the right sounds. I’ve seen the fill between zones, but is there a way to do it for the whole range?

    Aaaand, I’ve started diving into Javascript, but a lot of what I’m finding is related to html. Would it be possible to release a few plugins with the source code, or as snippets, similar to how Kontakt has their code open so you can see whats going on? Got a horrible feeling I’m going spend the next couple of weeks studying Javascript and be able to create an incredibly basic website, but still not fully understand how to implement it into Hise. I’ve looked at you woodwinds library David, I see for variables you’re using var, but the reading I’ve just done has told me to use let? I don’t want to pick up bad habits that will clog it all up, so any more real world examples we could study would be really helpful.

  • @d-healey Thanks David, I'd seen your Woodwinds one, much appreciated. The hise_script_examples seems to be empty though? Or am I being an idiot? I'd read through the scripting framework, just trying to gather as much documentation and resources as possible before I dive in to learning the next few weeks. Real world examples seem to click a lot quicker for me.

  • @d-healey Just had a look through your framework David, super helpful. Thanks very much!

  • @jon83 Oops, looks like I gave you the wrong repo. Examples are here - https://github.com/christophhart/hise_tutorial