• Efficient Debugging in DAW?

    8
    0 Votes
    8 Posts
    1k Views
    langermarc19L

    @Christoph-Hart for this one I don't have rubberband included no. But that's good to know I guess, it's not so far out of range if it's taking me ~5 minutes

  • SNEX C++ Template template arguments

    2
    0 Votes
    2 Posts
    555 Views
    langermarc19L

    Actually I think I may have found the answer in hi_dsp_library/snex_basics/snex_ProcessDataTypes

  • SNEX + Juce

    2
    0 Votes
    2 Posts
    446 Views
  • ScriptBuilder class

    2
    0 Votes
    2 Posts
    317 Views
    Christoph HartC

    @d-healey No, only in the onInit callback - and even then it's only ~95% stable, but it's enough to build repetitive module trees programmatically.

  • Multiple MainController's/SynthChain's

    4
    0 Votes
    4 Posts
    593 Views
    E

    @Christoph-Hart Makes sense, I investigated more about having multiple MainController's and it was definitely the wrong route. Pretty satisfied with FRONTEND_IS_PLUGIN for my use-case.
    Thanks!

  • Previewing segments of the same sample

    3
    0 Votes
    3 Posts
    495 Views
    E

    Note that I had to disable the pool "search mode" when loading the same sample over a range of MIDI notes, otherwise updating the start/end positions would be mirrored on every sample.

    auto pool = sampler->getSampleMap()->getCurrentSamplePool(); jassert(pool); pool->setDeactivatePoolSearch(true);

    I believe this is why this pool mode exists, @Christoph-Hart, i.e.: to allow each duplicate sample entry to have its own properties?

    E.

  • Storing extra properties within ModulatorSamplerSound

    3
    0 Votes
    3 Posts
    491 Views
    E

    @Christoph-Hart Hi! Thanks for the quick reply. Yeah, that's what I came down to, I'll base64 encode my properties to avoid adding a child ValueTree. That'll work even though it's not really optimal.

  • How to fold function list by default?

    3
    1 Votes
    3 Posts
    374 Views
    d.healeyD

    @Christoph-Hart Thanks. I just gave it a go but the outcome is weird, I think there is more to it. I'll keep poking around.

  • Adding floating tile colours to LAF

    11
    0 Votes
    11 Posts
    1k Views
    d.healeyD

    @Christoph-Hart Thanks for the tip! Still all the colours are coming through as 0. I assume I'm misunderstanding where the floating tile's colour data is stored.

  • Convolution on Raw API

    5
    1 Votes
    5 Posts
    673 Views
    hisefiloH

    @Christoph-Hart YEAHHHHH that was it. Helped me also to find out I need to add a Convolution Reverb Module on HISE and to load the IR to be pooled (yes... fool of me)
    Thanks man! Now we can go for some amp sims for my instruments!

  • getSystemStats

    1
    4 Votes
    1 Posts
    208 Views
    No one has replied
  • Any easy way to communicate from/to C++ and Javascript

    11
    1 Votes
    11 Posts
    2k Views
    jonhallurJ

    Just for future documentation and forum searches, this here code works in the other direction, that is calling into the Javascript from C++ from an inline function handed to C++, I image it would work for inline functions added to the Globals object as well.

    _global->setMethod({ "set_callback" }, [&](const var::NativeFunctionArgs& args) -> var { auto *obj = args.arguments->getDynamicObject(); if (obj) { if (auto p = _ref.getProcessor()) { juce::Result* res; var fVar(obj); var args[2] = { 42, 13 }; LockHelpers::SafeLock sl(getMainController(), LockHelpers::ScriptLock); p->getScriptEngine()->maximumExecutionTime = RelativeTime(3.0); p->getScriptEngine()->executeInlineFunction(fVar, args, res); } } return { 0 }; });

    Obviously this is not safe, and if you don't use an inline function, it will crash your C++ code.

    This is rougly the code from

    void ProcessorWithScriptingContent::customControlCallbackIdle(ScriptingApi::Content::ScriptComponent *component, const var& controllerValue, Result& r)
  • Can I pipe the Console output to std out

    12
    0 Votes
    12 Posts
    1k Views
    Christoph HartC

    You're right (I keep forgetting about the layers I've added to the debug handling). All Console.xxx() calls are ignored in the compiled plugin (in fact they are thrown away by the HiseScript compiler when parsing the Javascript code). This is to prevent that any residual debugging code ends up clogging the finished product.

    You can remove this by removing everything inside this preprocessing definition:

    Link Preview Image HISE/hi_scripting/scripting/engine/JavascriptEngineParser.cpp at 2da59a219ce25c10b6d9d9ee3e1ca0da18850940 · christophhart/HISE

    The open source framework for sample based instruments - HISE/hi_scripting/scripting/engine/JavascriptEngineParser.cpp at 2da59a219ce25c10b6d9d9ee3e1ca0da18850940 · christophhart/HISE

    favicon

    GitHub (github.com)

  • drawTableBackground

    6
    4 Votes
    6 Posts
    641 Views
    DanHD

    @d-healey sounds hectic!

  • Added getTrimmedBounds()

    5
    4 Votes
    5 Posts
    738 Views
    d.healeyD

    @christoph-hart Are there any downsides to including in the component class?

  • g.drawFittedText

    6
    5 Votes
    6 Posts
    679 Views
    ulrikU

    @d-healey Yeah that's my experience as well

  • Little C++ help required

    2
    0 Votes
    2 Posts
    311 Views
    ustkU

    @d-healey I think because struct isn't inside a header file it can't be included in the ScriptExpansion.cpp class

    So maybe try moving the whole struct into PresetBrowser.h and include it in ScriptExpansion.cpp, but it might be a bit more subtle...
    Also have you tried

    struct PresetHelpers PresetHelpers::importPresetFromClipboard

    Since they are in the same namespace? But I bet you I'm saying non-sense 🙃

  • Aliasing on Balance / Pan

    1
    0 Votes
    1 Posts
    219 Views
    No one has replied
  • Building develop for C++ API

    6
    0 Votes
    6 Posts
    773 Views
    Christoph HartC

    @daniel said in Building develop for C++ API:

    I'm curious which way you fixed it

    I would estimate I've added .get() in 90% of all cases and only returned / passed a ref counted pointer where the caller & callee actually takes / shares the ownership.

  • revealToUser doesn't work with spaces

    5
    0 Votes
    5 Posts
    556 Views

13

Online

1.9k

Users

12.5k

Topics

108.9k

Posts