Forum
    • Categories
    • Register
    • Login
    1. Home
    2. CyberGen
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 105
    • Posts 465
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Drag and drop multiple audio files onto a ScriptPanel?

      @David-Healey That did it! I updated to the latest develop branch and multi-file drag/drop istarted working immediately. Thank you much.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Drag and drop multiple audio files onto a ScriptPanel?

      @David-Healey embarasingly no, I'm always afraid to upgrade. I'll try to upgrade.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Drag and drop multiple audio files onto a ScriptPanel?

      @David-Healey Can't even get it to accept the folder to tell you truth, only through browser I can import a folder. It's frustrating, I'm not going to lie, because HISE's own samplemap builder does multi file drag and drop. I can only it to accept a single file at a time.

      posted in Scripting
      CyberGenC
      CyberGen
    • Drag and drop multiple audio files onto a ScriptPanel?

      Hi everyone,

      I’m building a custom samplemap editor / instrument builder inside a scripted UI. The goal is to let users drag audio samples from Finder onto a ScriptPanel keymap, preview where the zones will land, then drop them to import and map the samples.

      Single-file drag and drop is working well. I’m using:

      Panel.setFileDropCallback("All Callbacks", "*.wav;*.aif;*.aiff", function(f)
      {
          if (f.hover)
          {
              // update keymap preview from f.x / f.y
          }
      
          if (f.drop)
          {
              // import f.fileName
          }
      });
      

      The problem is multi-file drag/drop from Finder. When I select multiple audio files and drag them over the scripted panel, HISE rejects the drag and the files fly back to Finder. The callback does not seem to fire, so I never get a chance to inspect whether f.fileName is an array.

      I tried:

      • *.wav;*.aif;*.aiff
      • *.wav,*.aif,*.aiff
      • *.*
      • *
      • a narrow *.aif test with only .aif files selected

      Single-file drop works, but multi-file drop still gets rejected before the callback. The docs say f.fileName should be an array if more than one matching file is dropped, so I assume this should be possible from script.

      What I’m trying to reproduce is similar to HISE’s native SampleMap Editor behavior: drag multiple samples into the map, then choose a mapping mode like Drop Point, Filename Token Parser, etc. I don’t need to invoke the native dialog directly, but I do need the scripted panel to receive the full dropped file list.

      Questions:

      • Is ScriptPanel.setFileDropCallback() expected to accept multi-file drags from Finder on macOS?
      • Is there a specific wildcard format or callback level required for this?
      • Does multi-file drag only work from HISE’s internal file browser rather than Finder?
      • Is the native SampleMap Editor using a different internal drag/drop path that isn’t exposed to scripting?
      • Is there a workaround, eg. folder drop, Broadcaster, FloatingTile, or using the Sampler/SampleMap editor API?

      Any guidance would be hugely appreciated.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Declaring variables before a for loop necessary in some cases?

      @David-Healey & @dannytaurus thank you guys. I'll update.

      posted in Scripting
      CyberGenC
      CyberGen
    • Declaring variables before a for loop necessary in some cases?

      Hi friends, it's been a minute.

      So my question is about declaring loop variables before a for loop, given that HISE doesnt like it inside the loop.

      There seems to be conflicting guidance (and examples in the wild) about whether loop variables should be declared beforehand, and how much they can interfere with other functions.

      Both versions seem to work most of the time, but in larger namespaces with many inline functions, I’ve seen odd behavior that looks like iterator variables leaking or being reused across functions (off-by-one bugs, wrong source index, etc.).

      My questions

      Are loop variables (i, s, n, etc.) implicitly local to the inline function, or are they shared unless explicitly declared local?

      Is it considered best practice to always declare loop iterators as local at the top of each inline function?

      Can undeclared loop variables interfere with other inline functions in the same namespace, or is that a myth?

      I'm looking for some clarity as I’m trying to decide whether it’s worth doing a cleanup pass where every inline function explicitly declares its loop iterators (e.g. local i, s, n;) to avoid subtle bugs, or whether that’s unnecessary.

      Thanks.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Computer Keyboard Octave

      @dannytaurus I don’t know. I haven’t heard that it has but I might have missed it. Let me know if you find a way.

      posted in General Questions
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey @d-healey said in Sliders not responding to "Consumed" MIDI CCs:

      setCustomAutomation

      Now that I've had a bit more time, there are a number of hurdles with using this method.

      Issues Encountered

      MIDI Learn disappears
      The "MIDI Learn" option no longer appears in the right-click context menu of knobs — unless an automationId has been manually assigned in the Properties panel.

      automationId overrides control callbacks
      Assigning an automationId disables the knob's regular controlCallback, which is where most of my knob logic lives (e.g., updating processors, linked components, states, etc.).

      Workaround via automation callback
      You can attach a callback to a specific automation and call the original controlCallback logic from there — but this adds boilerplate and breaks modularity.

      Avoiding feedback loops crashes HISE
      Trying to assign a knob as the target of its own automation (to bypass issue #2) results in an infinite loop that crashes HISE.

      Controller numbers don’t carry over
      If you switch the automationId to a new target, the MIDI CC assignment doesn't carry over. It must be learned again manually — making it difficult to share CC control across multiple processors or targets.

      🤕

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey you genius!

      This re-establishes connection. I haven't fully tested it with all knobs but it looks like this solves the issue. It does create a bunch of additional steps, so I'm not sure that I won't run into more trouble, but I can live with that.

      I wish you would have posted it 20 minutes ago, before I posted the issue on github. 😬 I'll remove it.

      thanks man.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @CyberGen @ulrik @Chazrox @d-healey here is an updated snippet with a minimal example of the custom save/load function. The function is initially commented out so the knobs should move with your controller after you assign them. Then uncomment the function to test if controller still moves the knobs. Please let me know if they move for you. thx.

      HiseSnippet 1099.3ocsV0saZbDEdVi2l.8G0TkGfQ4p0UV1.FiskUTvFiaPwXi5lX0qZzvryZl3gYPyNqaHUQpWzWh7nz65qReC5aP6YlcMrj.0VnlUHf4bly47c9e6qUTVRhRi7p7xIiYHuuxObhzLr8PBWh5dBx6K7MrDC53IiIIIrHjmWoevxyq75H2ye+riIBhjxlQBgtTwory3i3lYT625Ebg3TRD6k7QEtciVcoJYakPkB3njeUzXB8ZxUryI1qslO54jjgHuu2e256PaDsWT856dPSJoI6fXRbbschZzn49GTamCHM1uIq5t.p6DwMJcng.nG4s9wpnIgCU+hLy.WxS3CDL6gZnPvxYjOUIhrtnkJp8PtHp+sAnDDnk9yBWkxBWO1uGOhOk9rv125XfmIQw.n2ZyCuRyAuZEgW0BvaAPxq.jVOCROxOjp4iMy3XwyW52UZX5XBjmJBkr6hVauR9sUvMjlsFQtlcpFNLUhf5UqtIF9ZiCqToBWJ3RFNNURMbkDqjGmZLJYMqBzJQ.UMZrRBpZS7MDQJaiJ+ZkxgLigKuJYKpfQz1fyYvux.PkuGz5sF+Jlo8shG7jbE+jM1JwR2o91DgX.TfD7w10Ats2F2NMwnFgCI2v19LEIBm4iUfhrDCfHMNc7P7SwcjWA9wVTMCxBuJgo6qYfYdNQFIXZKv.sEdzkcVfGmcUqIBbdmPQIB7TG+Dhg.V.rSt5uXvaXTyoPJGDoat3SczDmwJqYlTsbNs.AGKJN6hiNYonv5iApAuwAjXkFGvvbfskRYfTN3.EpmfK+TL6voz3QX3wRyxbKdzLVPlqHKWhzxE9rvbEOxkjtzdu.31fGU98Yn2FF.VPHNK0LKV2SEwDAEcjMmK3tINlHRXabXAm9bEDNkYgcP+3OlUb7B4kWj3xrKfscjj9+Rv.Y5nALcwRZ6Eg1t46k8WdubwQMzrXXgKpjckbyEiYxkM.BkG3g99R4nB9mw00+M4c8gBdDSi3Py8C7egTMnFxA3hCmQ2agqOmv+1G9ve7rkJbVynS3x94clKv1upqs4vN5J2a.ObLSa31fm2IrafEGYCxJ6eBK4ZiZrycyqyf.7c5vuclAOn0joGZ0uUhgMNj+taQTq+5c+t0gt25t9xz8e9y2otev8HbsDsCGLr2B5367aamdhc6VbyOQLIAJulNOMq5hmzSMBrJQOIuX5S2S.anTQoBhY90V1k64Lf5+41UX2GHS3lIEW9++1tr6KDejeetgNbwXbsEfQnV6yAFyeCfu1uSbLLaeF.W2+ze5yy5dzOpRsKQ6QLZNTq3ed5nP3slnLv5RISXm+3slsCO6bU6YaDHjIibG9G3ImYM6Yubl0tkIZDgpUull0kaeGiG5n.XR5derx98rmwKn4dDTE9ZJcdU8IBVeUEbmUUvFqpf6tpB1bUEbuUUv8uaAsCINJEV.m01fP852wML1yqiaJhqZE8u+I.ZsB
      
      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @CyberGen so, I added a midiAutomationHandler as well as mah.getAutomationDataObject() and mah.setAutomationDataObject() to my custom save and load functions respectively. It's still not working. Additionally I added mah.setUpdateCallback(midiDataObj) for good measure. Still not working.
      I noticed that in the midiDataObject all Channels show as -1. But not sure if this means undefined or all.

      @Christoph-Hart lil' help?

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey if the MIDI channel is -1, does that mean all channels or undefined?

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey it's weird because it's been great with everything else, it offers much more control over what you can restore with presets. I'm using a custom preset browser as well. So, everything works except for MIDI CCs. Which I'm not really messing with.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey So, I use it primarily to recall the state of attributes from multiple processors as well as some objects that contain data values. It's complicated but it works great for that purpose. However, it is clearly causing this issue for me. Just by commenting out the function and restarting HISE all knobs work properly with their assigned CCs.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @CyberGen @Chazrox @d-healey @ulrik So by process of elimination I narrowed down the source of the problem to my customLoadPreset namespace. I am using:

      uph.setUseCustomUserPresetModel(onPresetLoad, onPresetSave, true);
      

      Something about this seems to be severing the MIDI CC connection. It works as far as recalling all my components, processors, modulators' values and attributes. But it seems to be the cause of the MIDI CC problem. When I don't "include" it, things work as expected.

      Do you have any experience with this custom user preset model function?

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @Chazrox good tip! thanks.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey I have also tried with different controllers. And the weirdest thing is that when I right click on the knob after "learning the CC" it gives me the option to remove the learned CC, which suggest that it's HISE is receiving MIDI just fine, but then doesn't move the knob.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @d-healey I'm sending channel 1 and receiving in all channels.

      posted in Scripting
      CyberGenC
      CyberGen
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @ulrik I suspected that would happen. Thanks for taking a look. What would be your guess as to what the problem is?

      posted in Scripting
      CyberGenC
      CyberGen
    • Sliders not responding to "Consumed" MIDI CCs

      Hey guys,

      I'm having the weirdest problem. Sliders are not responding to their assigned CCs even though the CC is showing as "consumed". In other words it appears assigned to the knob, but does not move it. I have not clue what's causing this. Is there a knob setting I should be ticking? I'm afraid I may be missing something glaringly obvious. But I must have done something during development that screwed this up and now I don't know how to fix it. Any tips on how to troubleshoot this?

      I put together a one-knob demo snippet but I'm afraid it won't be of much help.

      thx.

      HiseSnippet 919.3ocsUsrbaaCEEPVzMV8wzzIq5JNdkbapinjeHmrvIV1NUShczT53o6x.ABZgQf.bH.Ssxic4mH6xWP+E559Yz+f9GzdAHUDUhbhGMsbgDAtuN3xy8fAYJJSqUYHbiyljxP3uxKbhzLp2HBWh5eHBupmgoMnCljRzZVDBiW4gVa30pibO+89GPDDIkMaKD5bEmxdLOgals6f6+HtPbLIhcFOoh2ac+9TkrmRnxAbrhWKTJgNlbA6Th0sZdnelnGgv+fW63gz1w61oavdA6s6V6EDrc2ga0pMMZ685zYmNQws6R1oKDzpGEwMprPCAPOBW+.UzjvQpeSVTfy4Z9PAytH.EBUtX6iUhH6QztKp2HtHZvzFjFAYYvr10JEsqa4cBOh+98m019VmA+YQTsAhqMO7VYN3EbUvaAPBWAR0KfzM8BoY7TyLKV77kd8kFVVLA9NUEJE9hp8JrWOE3gzrYBYL63LXw6inY6VstsO7yF2qQi6bmPlwvkWn2jJXjL647wv+xlVqbofKY9w4Rpgqj9J4ijpgA1bmoDMopjTkDpxs8eNQjy1nwKarFXTqDrMSy3RSy0O2Z3t9q6+ik9buFuFx7T3cAyzaZVZttK6quwlZ6ttZziHDCABTy4KMjkJf5Tkg8D.w1x230M7+PSwwKzVYtDrrEZ1xqy9TA1TlmLjkU8vacD91MOgv65QHnEsjJNpj8kbySRYxqhEiJ6iVxSIp.WMNpy2TRcBE7HVFhCLjuvy0DQN.WNy9t291+bezS6eHwPllFHiPURYYFt8.fOj8bPAnfQtl2gL8XiJ04a4mNPp4yVzKgNA96gJNw9xOAunMSrsgUcNfR3QQB1.klaayUjj9CsgkFxegCwu7V+9C+qW7l8SppZgPIjKqJhoyii4W5jah4hDsAvT+DPEBg+NumpY9QrXRtv3qGC4AH4iYQmob9i93gPX7WEkKHl40DrJmkFr.t5fncXSBGjIUA0GJTT+p4Est15XWW3dSuAbCczhwasEfWfK7+MdKkc+ZuihiYTyLvV263e8Spw9eCT9EUtU56DBPOrrySySBgqsnL.IRISXmcw0rSYEqaYWa6LgLYjaw+.OkFCrqwkFClZDHlzL0ynEylVQ9a31Avjzcg3ZdmXW6O+PYAmFzheFkNep9n.aurA1YYCbqkMvsW1.2YYCb2kMvte9.sWU9fbiJoXbBgNYvQNQTL9HIAXiNlK5eAdPwoS.
      
      posted in Scripting
      CyberGenC
      CyberGen