HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. Christoph Hart
    3. Posts
    • Profile
    • Following 0
    • Followers 77
    • Topics 102
    • Posts 8,186
    • Groups 2

    Posts

    Recent Best Controversial
    • RE: Envelope table - global mod bug ?

      @Straticah what were the exact issues with the mod matrix?

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Envelope table - global mod bug ?

      @Straticah it might take another week or two. The wavetable rehaul is almost done, then I‘ll work on the matrix.

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Envelope table - global mod bug ?

      @HISEnberg I‘ve been doing some work on the global envelopes recently (there were a few other glitches). It‘s not pushed yet because it‘s part of the bigger update to the modulation matrix that‘s in the works but maybe that will solve your issue too.

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Does Hise compile down to C++?

      No, anything you write into a script can be readable when reverse-engineering the binary.

      If you use the script unlocker you get the same level of security as a standard C++ copy protection though.

      posted in General Questions
      Christoph HartC
      Christoph Hart
    • RE: Wavetable Synth Hard Sync?

      Funny, I'm currently sitting on the wavetable synth, but hard sync is not possible without nasty artifacts - the reason is that I'm creating mip maps with perfectly band-limited wavetables for each octave but this goes out the window if you start hard-syncing the wavetables.

      You'll get a bunch of other nice things though soon...

      posted in General Questions
      Christoph HartC
      Christoph Hart
    • RE: Multiple Global Data Cables - only the first one gets a runtime target

      If I'm using the global cable code creator with your Ids I get:

      // Use this enum to refer to the cables, eg. this->setGlobalCableValue<GlobalCables::dataCable>(0.4)
      enum class GlobalCables
      {
      	dataCable = 0,
      	otherDataCable = 1
      };
      // Subclass your node from this
      using cable_manager_t = routing::global_cable_cpp_manager<SN_GLOBAL_CABLE(-389806413),
                                                                SN_GLOBAL_CABLE(165255555)>;
      
      
      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Multiple Global Data Cables - only the first one gets a runtime target

      Have you created the boilerplate code with the correct IDs? The hashes look suspiciously similar.

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Glsl shader doesn't work when exported

      The input parameter is the shader file name (without the .glsl extension and the file must be inside the Scripts folder of your project (it will be embedded like any other script file when you export the project).

      Link Preview Image
      HISE | Scripting | ScriptShader

      A OpenGL shader object that can be rendered on a ScriptPanel

      favicon

      (docs.hise.dev)

      // That's the image folder...
      const var glslPath = "{PROJECT_FOLDER}Images/bunny.glsl";
      
      posted in General Questions
      Christoph HartC
      Christoph Hart
    • RE: HISE Flags Definitions

      The about tab in HISE shows the most important preprocessor definitions as well as their current value (even respecting the new dynamic preprocessor functionality that allows you to change them on a per project basis without recompiling HISE).

      I can add more definitions there if you think something is missing, but that place should be the goto location for checking this.

      posted in Documentation
      Christoph HartC
      Christoph Hart
    • RE: Adding a second action to a button

      @pcs800 please don‘t post AI code here - it poisons the code quality in the forum.

      You can obviously use AI for yourself but typing something into ChatGPT and then paste in here here for DaveGPT to correct it is super lazy.

      posted in General Questions
      Christoph HartC
      Christoph Hart
    • RE: Global Cables Don't Work when compiled

      @griffinboy yeah that was also my initial assessment.

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Global Cables Don't Work when compiled

      @griffinboy said in Global Cables Don't Work when compiled:

      I started my own fork of juce to try and get around graphics limitations in Hise (using visage)

      Have you found a way to embed a Visage component into a JUCE UI? That's the new UI framework from the Vital guy, right? If that's possible then we could talk about a "HighPerformencePanel" component powered by this framework...

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Is it possible to create a midi note from ScriptNode/c++ node and direct it to a synth in the module tree?

      I decided they aren't for anything fast anyway due to the copying involved.

      Ah now I understand you, that advice is when you send complex data over a global cable, but the default operational mode of just sending a single numeric value is fast and realtime capable.

      posted in ScriptNode
      Christoph HartC
      Christoph Hart
    • RE: Is it possible to create a midi note from ScriptNode/c++ node and direct it to a synth in the module tree?

      Wait, we can do synchronous global cables?

      How fast will this be? We aren't talking sample accurate audio thread type fast are we?

      Sure:

      f9d9ce45-66ee-4b08-a559-c21a7bb8001b-image.png

      posted in ScriptNode
      Christoph HartC
      Christoph Hart
    • RE: Global Cables Don't Work when compiled

      Is there a way to pick up event data callbacks (event data reader node) directly inside of a c++ node?

      Yes:

      // instantiate this as a class member and forward those callbacks to it:
      // -prepare()
      // -reset()
      // -handleHiseEvent()
      scriptnode::routing::event_data_reader<NV> obj;
      
      // somewhere where you want to check if there is a new event data value:
      double mv;
      if(obj.getWrappedObject().handleModulation(mv))
      {
      	// there's a change in the event data
      	// do something here...
      }
      

      }

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Global Cables Don't Work when compiled

      @Orvillain said in Global Cables Don't Work when compiled:

      when I compile a plugin, does that automatically compile networks, or only if the network has the allowCompilation flag enabled?

      It does not compile any networks automatically - we've been over this a few times and there is literally no solution that won't mess up any workflow.

      If you're writing C++ nodes, you shouldn't touch any scriptnode network at all but directly add it into the hardcoded FX modules, this way you have no overhead & the best development experience.

      posted in Bug Reports
      Christoph HartC
      Christoph Hart
    • RE: Getting the sample rate for an externalData object?

      @Christoph-Hart haha, My Funky summary, lol that autogenerator has gone crazy...

      posted in C++ Development
      Christoph HartC
      Christoph Hart
    • RE: Getting the sample rate for an externalData object?

      Link Preview Image
      HISE | ScriptNode | ExternalData

      My Funky Summary

      favicon

      (docs.hise.dev)

      posted in C++ Development
      Christoph HartC
      Christoph Hart
    • RE: Getting the sample rate for an externalData object?

      @Orvillain data.sampleRate should be populated with the file samplerate if the audio buffer comes from an external file.

      posted in C++ Development
      Christoph HartC
      Christoph Hart
    • RE: Is it possible to create a midi note from ScriptNode/c++ node and direct it to a synth in the module tree?

      @Orvillain yeah there's currently not a real line of communication for MIDI messages back from scriptnode, but you're pretty good on track with the global cable approach - just analyse the audio in the C++ node and send it back to HISE via a global cable, then attach a synchronous script callback there that will add an HiseEvent to the MIDI queue with Synth.playNote() et al.

      posted in ScriptNode
      Christoph HartC
      Christoph Hart