• Customise AudioWaveform to be Mono?

    6
    0 Votes
    6 Posts
    136 Views
    ChazroxC

    @griffinboy I digress.

  • How to make Send FX Post Fade?

    3
    0 Votes
    3 Posts
    119 Views
    Tangerine_SoundsT

    @d-healey brilliant thank you!

  • How to optimize Scriptnode Networks?

    6
    1 Votes
    6 Posts
    213 Views
    orangeO

    @HISEnberg said in How to optimize Scriptnode Networks?:

    How to measure the latency introduced by my Scriptnode network? I imagine driving an impulse through the plugin and recording the output should reveal this (for a DAW specific context). Is this something Plugin Doctor can measure, or does someone have a better methodology?

    You can do a Null test in your DAW for this.

    One channel will be the dry (unprocessed) signal. The other channel will be the processed signal, that is, the channel where the plugin is.

    Make one channel phase invert. If these two channels are identical, the overall result will be silence. Since there is a delay at the sample level in the channel where the plugin is, determine the amount of sample delay required until the result of the combination of these two channels is silence with a sample delay in the dry channel.

    The amount of delay you will apply to silence the sound in the dry channel is the amount of delay created by your plugin's DSP.

    How to compensate for latency introduced by the Scriptnode network? I see in the API Engine.setLatencySamples, but it is unclear to me what it does. Are we meant to measure the latency of the scriptnode network (for example 32 samples) and this function will broadcast to the host the latency introduced by the plugin (i.e. "this plugin introduces 32 samples of latency, so compensate for that")? What does the host actually do with this information?

    If your plugin has a delay of 32 samples, the DAW will play your plugin 32 samples ahead, thus compensating for the delay. Therefore, it is necessary to inform the DAW of this delay value with Engine.setLatencySamples.

  • ControlCallback not working

    5
    0 Votes
    5 Posts
    121 Views
    X

    @d-healey Thank you! Makes sense, guess I can hardcode the parameter values.

  • Settings.setZoomLevel()?

    Solved
    14
    0 Votes
    14 Posts
    347 Views
    C

    @d-healey You MADMAN—five Monkeys awarded to thee! 🐒🐒🐒🐒🐒

    Like Sir David wrote, you need to resize a panel—any panel—and the whole interface will scale, accordingly. Here's code you can cut and paste:

    Link Preview Image [Feature Request] GUI Scaling with window handle?

    @Christoph-Hart Do I need to parent the ZoomPanel ? If I make a child of ZoomPanel knob/Slider etc cursor are also being changed to doubleArrow Cursor

    favicon

    Forum (forum.hise.audio)

    Important: Only the compiled version will resize—and if you think about it, that makes sense, because you can already resize within the HISE IDE.

  • Shaders Looks Broken on New Build

    Solved
    9
    0 Votes
    9 Posts
    374 Views
    C

    @Christoph-Hart Thank you very much,.

  • Move the view, how?

    4
    0 Votes
    4 Posts
    177 Views
    bendursoB

    @Matt_SF @Morphoice I've been working with Hise for about two years now and never knew how to move around the GUI. Until I found this, this changed my life haha

  • Help With ModMatrix Tutorial Project

    7
    0 Votes
    7 Posts
    186 Views
    Christoph HartC

    @DanH long time since I touched this, but the difference is that addModulatorTarget will actually create GlobalModulator targets in the modulation slots (and for the filter frequency it will put them in either the bipolar chain or the normal one based on the properties of the matrix).

    The parameter target just wiggles the knob as fast as it can do but there's no sample accurate modulation.

  • Romplerz

    15
    0 Votes
    15 Posts
    1k Views
    C

    @Lindon @cassettedeath Lindon speaks truth.

  • More Positive Posts?

    36
    6 Votes
    36 Posts
    7k Views
  • Midi player note off

    7
    0 Votes
    7 Posts
    274 Views
    hisefiloH

    @ulrik trying today!! will tell later...thanks mate!!!

  • Customizing Sample Import Window Aesthetics

    3
    0 Votes
    3 Posts
    169 Views
    A

    @pelle there's general LAF for modifying the looks of these popups, and there's the errorHandler for modifying the entire UX, as it'll disable the popups and just give you callbacks for various scenarios.

    The default HISE UX for sampleset import requires a plugin restart. For me, this was problematic because if a user moved their sampleset somewhere else, then opened a project, they'd have to restart the entire project if it had multiple instances of the plugin (preferable to manually restarting each plugin instance). I used the ErrorHandler and the FileSystem API to create a UX where not only does the plugin not require a restart anymore (Engine.reloadAllSamples) but this propagates to all other active plugin instances (once the error pops, start checking for changes in the AppData linkfile and executing reloadAllSamples whenever a change is detected until the samples are found).

    Some relevant links

    https://forum.hise.audio//post/75956
    https://forum.hise.audio//post/79998
    https://forum.hise.audio//post/75058

  • The Shader Train Don't Slow Down!

    4
    1 Votes
    4 Posts
    208 Views
    ulrikU

    @clevername27 Looks nice!

  • Laf Arc Knob & Glow effect

    3
    0 Votes
    3 Posts
    196 Views
    JulesVJ

    @ustk Clever! Thank you so much

  • Drop sample to create Wavetable?

    1
    0 Votes
    1 Posts
    55 Views
    No one has replied
  • Anybody understand what Sine Shaping Distortion does / how to make it?

    4
    0 Votes
    4 Posts
    259 Views
    griffinboyG

    @Dan-Korneff

    Nice yeah, so a little more complex than just sin() that makes sense.
    But essentially the same concept. Waveshaper.

  • Route a sound generator to multiple outputs

    3
    0 Votes
    3 Posts
    98 Views
    Christoph HartC

    @d-healey that's right, envelopes and other modulators are not processed on the channel level so you get a single modulation signal for every voice so even with polyphonic channel routing you would still be limited by this design.

    You'll probably need to look for another way to achieve this, but usually once you apply different modulation sources to voices it's time to duplicate the samplers.

  • 0 Votes
    15 Posts
    298 Views
    C

    @d-healey @Lindon

    Is that always the case? I vaguely remember documenting a situation where threads were executing (twice) before onInit. Something to do with default presets

    I haven't used the default preset thing so that might change things but the usual behaviour is as I described.

    Wisely said; here's the thread: https://forum.hise.audio/topic/10723/preset-component-callbacks-triggering-twice-on-startup/11?_=1742336098253

    Is that always the case about Callbacks?

    I will investigate - it will take me a couple weeks, but I will get back to you.

    Do you mean manually inserting a conditional check
    Yes, in every place you don't want it to execute automatically.

    I appreciate your thoughts. For me, at least, that solution isn't tenable. I have far too many callbacks, and it has emerged, on my end, that I am unable to always tell if a callback is being called at startup—or even what means, when you get into the various preset handling systems. But overall (and this is a @Christoph-Hart thing, not you), to me it is an illogical and limiting design choice. I get why it's there, and I'm free to write my own HISE. I just think it's wrong, much like with the broadcasters. 👻

    How do you pass data between (for example) UI and real-time threads.
    The same way I'd pass information between my UI and an effect - or any other HISE module. Either using processor/parameter ID or setAttribute.

    I thought about this, a lot. Because generally, I agree with you (and I teach my students as such) that global variables are to be eschewed (and because your code is so elegant). But there are legitimate usage cases for them. And more to the point—if the language says it supports global variables, then it should do that. At one point, @Christoph-Hart improved the handling of globals by introducing the Global object…but…and please let me know if I have this wrong…didn't fix them so they work properly.

    Out-of-order execution during startup.

    I have looked high and low for the screen-capture movies I made, but I don't think I was able to upload them because they were over 10MB, so I deleted them. I do remember that another user appeared to be having the same issue. I simply had to spend a couple weeks completely refactoring my code to get around that issue. 😭

    Anyway, thank you, as always, for giving thought to my questions.

  • Can't Build New Develop Branch with Profiling (macOS)

    Solved
    7
    0 Votes
    7 Posts
    234 Views
    C

    @Christoph-Hart said in Can't Build New Develop Branch with Profiling (macOS):

    @clevername27 FIY, that's fixed with today's commit 6bc83f40afce511cc97efe5390ead05538eb3bb6

    Thank you.

  • The Opaque Flag is Funny?

    Unsolved
    7
    0 Votes
    7 Posts
    177 Views
    C

    @Christoph-Hart Appreciated - the shader isn't behind the panel—that's just a static image. (See the example snippet.) The shader is in the header.

24

Online

1.9k

Users

12.5k

Topics

108.6k

Posts