Group Details Private

administrators

 
  • RE: About Rule Tec

    Congrats, really nice UI and teaser video!

    posted in General Questions
  • RE: What do I make wrong?

    I remember reading somewhere repaint and repaintImmediately were the same

    Thanks, I'll try to compile a new version then

    Yes, they are doing exactly the same thing and just left in for backwards compatibility reasons - the threading model in HISE figures out automatically if the repaint should occur synchronously or be deferred.

    posted in Scripting Forum
  • RE: Portamento/Glide

    It would rather be a MIDI processor which uses Synth.addPitchFade() - maybe I'll expand the Legato with Retrigger module with a Glide mode.

    posted in General Questions
  • RE: Load/Save Table(envelope) shapes

    There's already a reference type that allows editing of Tables:

    const var v = Synth.getTableProcessor("Velocity");
    v.addTablePoint(...);
    

    If you edit a table in HISE (so that it has a green outline), you can copy & paste the tables using either the Edit menu or Ctrl+C/V. It uses a intermediate Base64 endcoded String in the system clipboard like:

    36...............vO5G8C9DAtw7C...vO...f+....9C...vO
    

    so the only missing link is a API method

    v.loadFromBase64(string);
    

    then you can store the strings from your clipboard in your script or as JSON.

    posted in Feature Requests
  • RE: Portamento/Glide

    Have you played around with Synth.addPitchFade()? I am using this to make the portamento in HEXERACT.

    posted in General Questions
  • RE: Multiple loops?

    No (and I get nightmares from thinking about implementing this). What's the use case?

    posted in General Questions
  • RE: Viewport

    Yes I will include a snippet for this in the new fancy documentation I am working on right now.

    Also I realized it makes absolutely no sense storing the metadata in the samplemap file - just include a separate JSON file with the sample id as key names and do whatever you need to do using stock Javascript data processing.

    posted in Scripting Forum
  • RE: Purge on play

    Just out of curiousity: what advantage does that offer vs. freezing the track in your DAW? And how does it detect which notes are played? Do you have to play your entire track once so it can "learn" which samples to keep? If there are RR variations, will it keep all in memory?

    To be honest, I never bothered about that feature in KONTAKT. If resources get low, you start freezing.

    posted in Feature Requests
  • RE: Viewport

    I'd rather make an API like this:

    // returns the metadata as big JSON object. keys are the IDs, and the value is a object that you can populate with anything that can be converted to a JSON string.
    const var metadata = Sampler.getSampleMapMetadataList();
    
    const var currentMetadata = metadata[Sampler.getCurrentSampleMapId()];
    
    // read operation: check the tag for the currently loaded samplemap.
    if(currentMetadata["tags"].contains("hardcore")
    {
        // Something...
    }
    
    // write operation
    currentMetadata["tags"] = ["Tag 1", "Tag 2", "Tag 3"];
    
    // "flush" the write operation. This will reload the pooled samplemap (asynchronously).
    Sampler.writeMetadata(Sampler.getCurrentSampleMapId(), currentMetadata);
    posted in Scripting Forum
  • RE: Viewport

    Instead of the user loading sample maps think of it as the user loading presets and each preset is tied to a sample map. I'm doing this now for a synth project. It does mean creating 1000 presets manually though it seems but this allows you to use the standard preset browser to achieve the same goal - no meta handling though.

    Not sure about this. If you have to create 1000 things of something manually there has to be a smarter way.

    I am using something like you are talking about in HEXERACT to display a sound browser and it splits the samplemaps into categories based on their folder, then shows it in two viewports - one for the category, one for the folder. In this case it is only two levels, but it shouldn't be too hard adapting the code to support multiple levels.

    However your idea of attaching some kind of metadata to the samplemap makes sense - in fact there is already a bunch of metadata present (multimic IDs, round robin amount, etc), however if I do this I must be extremely careful not to break backwards compatitbility, which would add another pile of mess to the issues with samplemap loading at the moment 🙂

    posted in Scripting Forum