@David-Healey That did it! I updated to the latest develop branch and multi-file drag/drop istarted working immediately. Thank you much.
Posts
-
RE: Drag and drop multiple audio files onto a ScriptPanel?posted in Scripting
-
RE: Drag and drop multiple audio files onto a ScriptPanel?posted in Scripting
@David-Healey embarasingly no, I'm always afraid to upgrade. I'll try to upgrade.
-
RE: Drag and drop multiple audio files onto a ScriptPanel?posted in Scripting
@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.
-
Drag and drop multiple audio files onto a ScriptPanel?posted in Scripting
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
ScriptPanelkeymap, 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.fileNameis an array.I tried:
*.wav;*.aif;*.aiff*.wav,*.aif,*.aiff*.**- a narrow
*.aiftest with only.aiffiles selected
Single-file drop works, but multi-file drop still gets rejected before the callback. The docs say
f.fileNameshould 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.
-
RE: Declaring variables before a for loop necessary in some cases?posted in Scripting
@David-Healey & @dannytaurus thank you guys. I'll update.
-
Declaring variables before a for loop necessary in some cases?posted in Scripting
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.
-
RE: Computer Keyboard Octaveposted in General Questions
@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.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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 -
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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?
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@d-healey if the MIDI channel is -1, does that mean all channels or undefined?
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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?
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@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.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@d-healey I'm sending channel 1 and receiving in all channels.
-
RE: Sliders not responding to "Consumed" MIDI CCsposted in Scripting
@ulrik I suspected that would happen. Thanks for taking a look. What would be your guess as to what the problem is?
-
Sliders not responding to "Consumed" MIDI CCsposted in Scripting
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.