Video Tutorials

  • Tutorial 1: Building HISE from source (on Windows but should be workable for OSX too)

  • Awesome! There's hardly anything to add. The only thing that bothers me is that you can't write the .lib file to the plugin folder. Is it because you don't have the administrator rights on your user account?

  • Yeah I think that's it. If I'd opened Projucer as admin it would probably work but I always put everything on the desktop anyway. I just hadn't set it up on the system I was using in the video because so far I've been doing it all on my laptop. I'll test it out and add a video annotation to clarify if that's the case.

    Update: I just tested and yes it works if Projucer is run as admin. I've added an annotation explaining this.

  • If anyone has any suggestions for tutorials that would be helpful. HISE is vast so it would be good if I knew what was of most interest.

  • Here are a few topics that might be worth documenting (I am planning to add some docs too, but it's aesthetically more pleasing to hear it from a native speaker 🙂

    Since most people are coming from KONTAKT, it might be wise to focus on the stuff HISE does differently:

    • Project Management (this is something most people don't know and it makes life pretty easy once you understand it).
    • Multimic handling
    • General HISE architecture (put different sample types in different sampler)
    • Interface Design with the JSON property stuff
    • Create your own interface widgets using the ScriptPanel

  • Great suggestions, I'll knock something together this weekend

  • Tutorial 2: Project Management

  • Neat! I don't have actual internet right now and no flatrate on my mobile phone so a youtube video is a bit too much for my precious traffic, but I'll watch it as soon as the ISP fixed the problem - it's been like this since monday...

  • haven't watched these yet, but wanted to say thank you for this effort, i am holding out to watch them all in on go a 100 times when you get to UIs and compiling plugins and so on.
    very much appreciated 🙂

  • A quick thank you present (I think you have requested this a few times, but I forgot to add it): I just implemented support for loading scripts from a global location:


    The wildcard GLOBAL_SCRIPT_FOLDER will be resolved to the scripts subfolder of the AppData directory, (which I changed from "Hart Instruments" to "HISE" in the last commits BTW). So on Windows, just put your global scripts here:


    and on OS X:

    ~/Library/Application Support/HISE/scripts/

    Compiled plugins will embed these scripts just as they if they were in the project folder.

  • Awesome, thanks!

  • Tutorial 3: Using Multiple Dynamic Layers - Velocity mapping, Round Robin, and CC Crossfading

  • Excellent! You really got a profound understanding of the HISE concept over the time 🙂

    I have only a few remarks:

    1:27: use Velocity Spread and Custom to map them automatically
    2:51: you can use the auto select feature (the mouse arrow icon on the sample editor) to select the currently played sample. I am using this feature to tune the samples (it actually feels like tuning a real instrument this way)

    Also, there is another solution to both having dynamic XF as well as Round Robins which doesn't involve using multiple samplers: You can use the velocity layers as dummy RR groups:

    /** Velocity 2 Round Robin script
    *   Cycle through velocity layers in case you can't use RR logic
    reg rrIndex = 0;
    reg rrVelocityValues = [10, 60, 100];
    function onNoteOn()
        rrIndex = (rrIndex + 1) % rrVelocityValues.length;
    function onNoteOff() {}
    function onController() {}
    function onTimer() {}
    function onControl(number, value) {}

    In most scenarios you are not using the velocity information for dynamic crossfades so this might work (Although if you need it for something else like modulation the sample start you'll have to hack around a bit by eg. putting the real velocity into an array modulator before changing it).

    Also I was thinking about optimizing the XFade performance by checking if the Fade value is zero each buffer and skipping rendering of the silent channel to save CPU cycles (it still has seek & stream the samples to stay in sync)

  • BTW, would you agree if I put up these videos on the main website (under something like Video Tutorials)? You'll get credited of course, but I think these videos will help people learn HISE much more easily.

  • Oh yeah that would be great 🙂

  • There you go:

    Thanks again for doing this!

  • Dave, let me add my thanks too. Well done.

  • BTW before you tackle multimic handling, I would like to improve the workflow of merging as the current one is a little bit too hacky (and fails pretty quickly if the file name scheme isn't perfect). If you have any suggestions, let me know - I think you used that feature more often than me by now 🙂

  • I've not yet found any problems with the multi-mic handling, except for the ones you already helped me solve, I think it's quite straightforward. The only related area where I've found limitations is with some of the effects not being multi-channel too.

  • Just a quick update. I've been busy for the past few months with decorating a house, building Kontakt libraries and doing other bits and bobs and haven't had chance to make any more videos. However I'm finishing off my first major HISE project and will be finished decorating next week so should have some free time. I have a lot of tutorial videos planned...

Log in to reply