Need help with sampler...

  • Hello!
    (I am a beginner)
    I am creating a rompler. (Here is my GUI project: )
    I have some .hip presets I did with samples.
    Now I would like to make an interface that allows users to open the presets, and modify some basic things: ADSR, Filter, Add FX...

    I have opened a sampler unit and an AHDSR mod. I would like to display them on a GUI. So I opened a window, but there is my problem: what do I do now?
    Also, what do I insert to able the sampler open presets? And how do I represent it on the screen?

    Thank you for people who would take time to explain me 🙂


  • How familiar are you with Javascript?

  • I do programming but not in Java, neither C++ or Python.
    I guess this is a problem? 😄
    But I would be ready to try understand the code I should adapt/insert.

    Tell me please D.Healey!

  • Yeah you'll need to learn the scripting language that HISE uses, it's very similar to Javascript - click the Documentation link on the homepage ( to find relevant info.

  • So the art part is only possible by code? I go learn the code 😄

  • You can do it without writing code using the interface designer which will write code behind the scenes for you. However if you run into any issues you might struggle to solve them if you don't understand what is happening in the code. The manual has some info about using the interface designer and there are some blog posts about it I believe - my advice is to read all of the info available about HISE and then experiment.

  • Thank you so muck D.Healey!

  • Hi Dark Boubou,

    welcome to the forum! David is right, I tried to make designing interfaces as easy as possible (and for simpler interfaces you might get away without even touching the code once), but the foundation of this remains to be Javascript (or my customised version of it). So in the long run, it's pretty impossible to build instruments in HISE without knowing Javascript - or pay someone who does 🙂

    I'd advice to start with the video tutorials from David, and then grep through the written documentation (which is a unfortunately a bit outdated in certain areas).

    In general, you create one .hip with your module structure (modulators, effects, samplers), then add a ScriptProcessor in the main container and build the interface that connects to those modules (see how far you get with the Interface Designer).

    The different sample sets will be created as SampleMaps and can be swapped using scripting callbacks:

    // Creates a reference to the Sampler with the name "MySampler"
    const var mySampler = Synth.getSampler("MySampler"); 
    // loads a sample set into the sampler (use this from a UI callback)

  • Wow so these lines alow me to open .hip files in a sampler from the interface, that's it?

  • Almost. These lines open a SampleMap (which is a dedicated .xml file that contains the mapping data for each sample). The SampleMap must be within the project subdirectory (take a look at David's Project Management Video Tutorial to get more information about this).

    You only have one .hip file after all.

  • so the final .hip will be able to open sample-maps, saved as .xml, that's it? 🙂

  • Almost 🙂 The final hip will be turned into a plugin / standalone application / iOS app which is able to load different sample sets previously saved as xml (they will be embedded in the binary).