• plugin works fine, until hardcoded master is created

    General Questions
    1
    0 Votes
    1 Posts
    1 Views
    No one has replied
  • Protection for my plugins

    General Questions
    13
    0 Votes
    13 Posts
    15 Views
    H

    @David-Healey Perfect, i'll search everything

    thanks for helping me 🙂

  • Sending Midi Out from Sliders (Instrument Plugin)

    General Questions
    16
    0 Votes
    16 Posts
    77 Views
    David HealeyD

    @bendurso Try the test snippet that ulrik posted

    Try it in Reaper.

  • Latency compensation not being triggered in daw

    General Questions
    7
    0 Votes
    7 Posts
    51 Views
    dannytaurusD

    @David-Healey Yeah, good call. It should probably be the smp value, not the ms value.

    EDIT: see above 👆

  • Two Samplers One Filter

    General Questions
    13
    0 Votes
    13 Posts
    113 Views
    D

    @Lindon Thanks for confirming! That's exactly what I'm going to implement. Now I'm confident there isn't a better way.

  • Font not changing on comboBox. What am I doing wrong?

    General Questions
    20
    0 Votes
    20 Posts
    656 Views
    David HealeyD

    @dannytaurus Ah yeah that would make sense. I wonder where HISE stores the actual selection from the property editor.

  • 0 Votes
    3 Posts
    35 Views
    N

    HiseSnippet 2889.3oc6assbaabFFPRK0A6jXONMWqKc5XwAmA3zYpk0IWMM1lUT0I4JOP.KEQDH.L.nEY5z66qPtquF8t7n3Gg9FztmvQBHBBKpwYhTlLl.6o+++86+H1ENMF5YCseWjmSP.Lliie89g9VvnH+PN9cNeV.ji+gfAy7hGc3HSGOtSOhi+If9ldxGcNLJ1w6x9iLifbGLKvLJBZywyu9Kwcje6M3H+8ee9AltldVvrWww8VeGK324L1IN6s82+u535dhoM7bmw45sx9mZ46cnuq+DDQsNPfKvz5JyKgu1D2s0.b+EynQb7+Qfrtl4PIccHbnlPOc8gZ5VlRPnhrhxE1lWHYXXYnpavw24XamX+vAwlwvHN9MNv2d1fQ9W6QWf25D4bgKD+fH2.zJSe8I9t1XVD+VtCG43ZmJshPxtMxI6VmJ69ZvqbrcReelL7QjF1MaD4Ef7qUj7Vu.4Ilm7DxQdUPR74HoMnjziACrBcBhyZASOO.bpWLLbnoUw8RZe43+Uvg9nN3E2cr4UvSBQOjNfmpHH7rckDD91+zvIdVwN9d6568Z+X3a7d52ty+Xms24etytkaZ3vJaCuLg9ttvvJaFCMBuoA9TuIiu.F9rc+fo6DXZGQreQYJndYZ9sbKJWmqi9dm54D+l.nWc.ANlnBqNwnJzuhIR+ujI8G35XCC4bPB4N.BdmPuLT++9W9k+yy4ZvXAHXzzBCknw0jg9PvalDGLI9kNldkmgO9bt+9oGYFahgPLtAwgAvvXGrvi+H3GPJvT.01fifQWE6GfjwG5ONv2Cy67aQW4uHAtY5AcIK7V.xuE4ll2hvr7Obsic7nrWLa+QPmKGkyVgy9NwvwI1DdHPQxPQWStmnFWVCRrVjkE5YHqf2WRotGtnsibD2ed+bD2o6Wh39w4Hteb+fDzvoDAMcM18jePDY5JDY0Bo3bJYohwKUDBbcNbZ7A9SofNa3PyItwusLhvIpu6jKc75mLITDXPwWRMKxXilwyTXTFK+qWrpXY.XLZkZBGS.xKCGSYh7L7WzLveFe+wfkluiQrQt4CaeughhBiogRjOtTRjBq.27tBPNg7sm3ZFWzyDt6rFPlVK3N.ay2KxIdV9MoaM2UMkDeLnuSr0npow0pfFQlwVEzHyI+W.Nd3PnUbFAtA3je3tyi9NLHFZMwKdADWU9x+WfL+lAgPDnDdteeWyYOMxbbfK7LDM9rcuv025pAN+LbdmsL.9A3d7TqQldHy4QswmbmFKUDu4Mky7mfiE8UlwgHa.7fWOY7.jG.K3gLpC8N90vtloOKfeFiKFfB.l7v+C8GqQQ7y7rFESZLyqN2qgwW6GdEY6f8ajaMrreGf4OG5LdBxpwaggQXnI+l.gtn+i6Ett9WisN4v.sHrJ4c88cmELx2ywBuKQ6QBg+hw9SvlxnTeFh+fjcmDFAEC74lNt3IcvjHTzI1uwa.ZdHAdiAfu12F8qsNwzBIwm02DaX6w.b7MHTKLrqUJ5MGSjAevBdpUkbMi2qRs4DQ2m9NDgkN.zZl3jlRlHtaLw1LJrcRxFIwTPQ13mP5sqQwwmF8VbqVltbL6fjse7rhGv5TVpCtyaAlNzDacu.+8HB+gPfcYsVE+jNzkhZWqD09UXLWNYQJAKQLYjuqcv1zfI8..N6UCPXsqwlzN2L7RXLY9y+BVXXdPhhUTwG4n6sXWJaBtDsIpy0uXTFT6+seBkqdByws3cuLGRHGwdobGF5+JyooOKhdFKE1DPe0KlD6OFo+yxq5n798n60oawQAtNwRb0BgIsWydLarKZONAasVtEda.Q2PTjaAJOUsx.fc3rFur74V1jMyBK5CPKZHr6k0sbnfwCmQ1dVvRtVgcu0ys6sY1t2Vf8DEJuAhedPLLfZ84qQOi5C4OQkdBhhZHa0WAulR13pEn1UQRRRWPWWwPQDELNGUKfPlE1uyVvbnBjkupotxXqs.XBY4nNbGjEDEjQcnWOCkd5BhrDhGL12OdDxqRhlZGfDd1KRwrWxc2K.eH3LXDjQGEl7hTH8cb4sdUP0kaosBi1QpP8PncpGWirF0F0isnKau1rpoi8tyA0lfwnsDm5oVZyUQsO.bloms+3WB8Zk8KF2p7IHoTZoELb9sk7I+Uo9joMV0plLvErnabidj2FbnKZlQdrX6Mngbyth2hInyGnUlG4p8PxDPhEcQB.AnDKI4h5BmxpjB3bSTzrXMNZln8MsvwPhr0Y63ehCsIz+xTKOxA4yxb1ASPIWDVVoMm8aDWrH+sYVax7+tE3EHd4C4LcHVgoCwR11xsTOA2XI6V4MFK2Hiwz.NI0RDkcPo0GY5COG3+zUTETMDzJGuvspoL1lo5mflhZKMlQ.7hKupR5H+Mqtxi.GfTD1EMa6Rpq78pMe5pMxIpMJJ5BxnnFt8UapcBXJTalSgpkQNisgVUJl2koURnOi1Q+8M8Zk0fsA+T.N6+RdN+RvOYGEzMospC+Oo0kJ7+0pN4s+.XOgtZJ8J7WNvJFYpoJj+OJxjx52blcMUQTqFEwNfyl3tf.eEWoA9x.GxsAbrM96+M.YNqw.jMJDXEMU2VjIbxPaSfjcHYjtbIjxFysQ1nymuGK4paurQuAzT5pce1n21YiV.YS0YZgJUxPaWIdBge.FdgXYv8vocosTiVbxvZM9tQ0JaavQliCxs4WmjUsvVeCqC22S9JW2X7LKXlUpbl6.HXpplq4hFoV3.15gzxYxIYPqnJfsIXO4UhUmjItn.K4s2a14ythfsnPf6PkgiidmMzB+lBv3m.Boe0ptYcn5x+j09x.oqkhXECW7SnP5hsxJKUwTrMZyhqjHH5.1SCYMZUUMa1zWapW2qHuBhe3x4KfSyfXp2JPrDy0qtuXRiSq5dv0J0KwbF4gdKvHOqC0Zjm0d6MxuBxtUpMghuA3322x3vuv48SLskJ+c7GRquWWZy0DLdxXWzJWr9h7o0NL4mnebpmMbJlQ1qTsx36TM7kAty.uaidASGqjRjjTudBJpZRRxJF5FpLknSBgueBBBLiCePvN2mLOG56gRvfrX46QZg9zUkz61SVUvPQPznmfzbYsxTzqsZjXkZpFkXOIgdR4KvyS.85ZPp5ilngprfjt77bilhtntgntrflpngFgaVG723xsBJZpZZ5BpRBRRJxRKrbof7x08LJYTPNM+hkyd3hq2aKs18M3YSfUeLccMECIUixbYMcpwDnZs0Aq3oIQtVqZehU9davwd3Jwa2jReWanmLE3kW8Ncn+NR6FgQ5Jp1SUPomjhtfhxmcZ2jR.KiurE8DvXZUCTeVB06xvuMwQATT+dtzgEKc.QJGT8uOzyk9rSO+VMe5BeShMoeTA72CZQbDRHk+pBc7TzD3Y5l6rByuC3HmHJG1fZS0rCJW1Gdoz4..+gP3JyJy8IOuc4paziXY9AbCG7O0pO3e07wcY1ma9PxhXaYFSRIWKMFBLl6FXFwpWk4RdTdYOwceOL92Rm3tBGst6yd7tL6w6jBNRQwZsoDHZ2Vk.Qrbc1DEpvaSQgO4XQzSyvPB++hZ2Pg09FTmY6fh8jwW8KM3d52Wns6Rzbwce5VE45rc65KatKA27T479nWqF2.ziQUA2.4NDM04Wic.qpcXyGnB9Nts5DCjKcUUgi0rPURuuCEXnjii+bbSgKQ1JgongcUUnXKykTPqZ26G36e0XSxk0oU2o06jqVzXSqP+2wNreXFcKxaPBQujSKB94cEKeQc43F6X67NKqhS0bCTpsCTtsCTosCTssCTqsCTusCzXwCDeK+YtkvfVNtW0+XBHjmOIKKd904fiu.ZaCsoWQOLVM8MdvorC4HO+PG7sgaM7+jPIDiScGkbQ0omby+O.AM.Rj

  • 0 Votes
    2 Posts
    26 Views
    David HealeyD

    @MZLY said in Silent Note (F3), Ghost Note Trigger on UI Focus, and Strum Start Delay:

    Script Processor 1: Handles UI (Knobs, Buttons, Global Variables).

    Drop the global variables. There's always a better option.

    @MZLY said in Silent Note (F3), Ghost Note Trigger on UI Focus, and Strum Start Delay:

    Question: Is there a hidden "Low Key" setting in Script Processors that might be filtering out notes below C3 (60)?

    No, the problem is in your script.

    @MZLY said in Silent Note (F3), Ghost Note Trigger on UI Focus, and Strum Start Delay:

    Problem: After toggling a UI button (e.g., "Duitara Mode"), Note 65 (F4) is automatically triggered.

    Again something specific to your project/script. Need to debug it.

  • Notes off by half step when using Arpeggiator

    General Questions
    3
    0 Votes
    3 Posts
    64 Views
    P

    So I decided to revisit my problem. I first created a very simple arpeggiator and it worked fine without using the Step Sequencer mode on the Notes Number slider pack. So I decided to revisit the same synth arp that didn't work and removed the Step Sequencer mode on the NN SP and it worked. The notes come out as expected, eg. C is a C and not a C#. I am not sure why it didn't the first time, but I am happy now.

  • LLM and Faust MCP

    Faust Development
    3
    4 Votes
    3 Posts
    103 Views
    S

    Code to be tested here.

    import("stdfaust.lib"); declare name "brightOrgan"; declare author "Claude AI"; // Safe frequency limit (well below Nyquist) MAX_FREQ = ma.SR / 2 - 1000; // Safe filter function - clamps frequency to safe range safe_resonlp(f, q, gain) = fi.resonlp(min(f, MAX_FREQ * 0.4), q, gain); safe_lowpass(order, f) = fi.lowpass(order, max(20, min(f, MAX_FREQ * 0.9))); // Organ parameters freq = hslider("h:Main/freq [style:knob][midi:ctrl 1]", 220, 55, 880, 0.1); gate = button("h:Main/gate [midi:ctrl 64]"); volume = hslider("h:Main/volume [style:knob][midi:ctrl 7]", 0.5, 0, 1, 0.01); // Organ stops foundation8 = hslider("h:Stops/Foundation 8' [style:knob][midi:ctrl 14]", 0.8, 0, 1, 0.01); principal4 = hslider("h:Stops/Principal 4' [style:knob][midi:ctrl 15]", 0.5, 0, 1, 0.01); fifteenth2 = hslider("h:Stops/Fifteenth 2' [style:knob][midi:ctrl 16]", 0.3, 0, 1, 0.01); flute8 = hslider("h:Stops/Flute 8' [style:knob][midi:ctrl 17]", 0.4, 0, 1, 0.01); nasard = hslider("h:Stops/Nasard 2 2/3' [style:knob][midi:ctrl 18]", 0.2, 0, 1, 0.01); tierce = hslider("h:Stops/Tierce 1 3/5' [style:knob][midi:ctrl 19]", 0.15, 0, 1, 0.01); // Reverb parameters reverbAmount = hslider("h:Reverb/Amount [style:knob][midi:ctrl 91]", 0.3, 0, 1, 0.01); reverbDamp = hslider("h:Reverb/Damp [style:knob][midi:ctrl 92]", 0.5, 0, 1, 0.01); reverbSize = hslider("h:Reverb/Size [style:knob][midi:ctrl 93]", 0.6, 0, 1, 0.01); // Organ pipe generator (filtered square wave + breath noise) organ_pipe(f, brightness) = pipe with { // Clamp frequency to safe range safe_f = min(f, MAX_FREQ); // Square wave with odd harmonics square = os.square(safe_f); // Low-pass filter to soften the sound cutoff = safe_f * (2 + brightness * 8); filtered = square : safe_lowpass(2, cutoff); // Characteristic organ breath noise (with safe filter) breath = no.noise * 0.015 : safe_resonlp(safe_f, 1, 1); pipe = filtered + breath; }; // Flute pipe (more sinusoidal) flute_pipe(f) = pipe with { // Clamp frequency to safe range safe_f = min(f, MAX_FREQ); // Dominant sinusoidal fundamental fundamental = os.osc(safe_f); // Some harmonics (only if frequency allows) h2 = os.osc(min(safe_f * 2, MAX_FREQ)) * 0.25 * (safe_f * 2 < MAX_FREQ); h3 = os.osc(min(safe_f * 3, MAX_FREQ)) * 0.08 * (safe_f * 3 < MAX_FREQ); // Flute breath noise (with safe filter) breath = no.noise * 0.02 : safe_resonlp(safe_f * 1.5, 2, 1); pipe = fundamental + h2 + h3 + breath; }; // Combined stops organ = ( // Foundation 8' (fundamental) organ_pipe(freq, 0.3) * foundation8 + // Principal 4' (upper octave) organ_pipe(freq * 2, 0.4) * principal4 + // Fifteenth 2' (two octaves) organ_pipe(freq * 4, 0.5) * fifteenth2 + // Flute 8' flute_pipe(freq) * flute8 + // Nasard 2 2/3' (perfect fifth) flute_pipe(freq * 3) * nasard * 0.7 + // Tierce 1 3/5' (major third) flute_pipe(freq * 5) * tierce * 0.5 ) / 4; // Organ envelope (characteristic slow attack) env = en.asr(0.1, 1, 0.2, gate); // Dry signal dry = organ * env * volume; // Smaller reverb with adjustable parameters reverb(x) = x : re.mono_freeverb(reverbSize, reverbDamp, 0.3, 6000); // Dry/wet mix output = dry * (1 - reverbAmount * 0.5) + reverb(dry) * reverbAmount; // Stereo output process = output <: _,_;
  • 0 Votes
    3 Posts
    41 Views
    S

    @David-Healey Thanks David, I'll give the Virtual Machine a try instead of the cloud instance and see if I can get it to work there. 🙏🏼

  • Enable Multi Output in Logic

    Solved General Questions
    12
    0 Votes
    12 Posts
    194 Views
    dannytaurusD

    @daniloprates Looks like you can use Engine.getNumPluginChannels() to get the output channels. If it's 2, route all instruments to outputs 1/2, if it's more than 2 then route all instruments to their own outputs.

    EDIT: actually, maybe not. I think for a multi-output enabled plugin it will always return the max outputs, even if the plugin is loaded as a stereo version.

  • Full Expansion Export - SampleMaps disappear

    Bug Reports
    19
    0 Votes
    19 Posts
    86 Views
    A

    @David-Healey can you please check your emails?

  • Text to Value Converter Purpose

    General Questions
    4
    0 Votes
    4 Posts
    38 Views
    N

    I think every node has that

  • 0 Votes
    10 Posts
    64 Views
    dannytaurusD

    @David-Healey Turned out to be quite painless in the end. 🎉

    const pnlPresetBrowser = Content.getComponent("pnlPresetBrowser"); // parent panel const fltPresetBrowser = Content.getComponent("fltPresetBrowser"); // floating tile const bc = Engine.createBroadcaster({"id": "PresetBrowser", "args": [component, obj]}); bc.attachToComponentMouseEvents(["fltPresetBrowser"], "Clicks Only", ""); bc.addListener("mouseAction", "Mouse action to close preset browser", function(component, event) { if (!isDefined(event.columnIndex)) return; if (event.doubleClick && event.columnIndex == 2) pnlPresetBrowser.showControl(false); });
  • Modulation is deleted when loading a DAW project!

    Bug Reports
    4
    0 Votes
    4 Posts
    106 Views
    Oli UllmannO

    Okay, it's not perfect yet! It works when a user preset is loaded. If you only edit parameters in the plug-in without saving/loading a user preset, the DAW project will be loaded with the modulation set the next time you open it, but the default values set with ScriptModulationMatrix.setMatrixModulationProperties will be used.

    The actual modulation information, such as mode and intensity, is stored in the user preset (why can't you get it with ScriptModulationMatrix.toBase64()?). And if no preset is loaded, the default values are used.

    I think the solution is to store this data in a panel or something similar.
    I'll take a closer look at the problem in the next few days.

  • Convolution Reverb - user selecting their own IRs

    General Questions
    4
    0 Votes
    4 Posts
    84 Views
    P

    @David-Healey I tried it and it works great and really easy to implement. I also didn't have to remove the combo box, users can either choose an IR or load their own. Very nice. Thanks again!

  • Sampler playhead reset on noteOff

    Scripting
    1
    0 Votes
    1 Posts
    31 Views
    No one has replied
  • Phase Correlation Meter

    Scripting
    14
    0 Votes
    14 Posts
    280 Views
    dannytaurusD

    @resonant I find Claude very useful when coding. I use it every day in the Cursor IDE when I'm building web applications in Ruby on Rails. I'm about 5-10x more productive with Claude.

    I'm on the $20/mo plan with additional OnDemand pricing for extra requests. Given that I use it every single day, often for hours at a time, $20/mo is a bargain.

    If you open the HISE source in Cursor, you can ask Claude questions about code locations/definitions, workflows, how to write scripts in HISE, etc.

  • save start and end positions in preset

    General Questions
    12
    0 Votes
    12 Posts
    105 Views
    T

    I just managed to fix it. There was something in the script before I had to swap. so I don't needed this Engine.addModuleStateToUserPreset