HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. Orvillain
    3. Posts
    • Profile
    • Following 1
    • Followers 0
    • Topics 65
    • Posts 533
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Error when Compiling DSP networks to dll

      Are you using any custom SNEX code, or custom math.expr nodes with custom shaping code?

      posted in General Questions
      OrvillainO
      Orvillain
    • External Display Buffer & Hardcoded ScriptEnvelope modulator - display is transparent

      8e73e9e0-9830-4209-9cf2-2d5ba0a887e1-image.png

      I get this with a custom hardcoded script envelope modulator. You can see the display at the top is transparent, and I can see whatever window is below it through the postbox.

      But I know the display buffer is working, because when I connect a floating tile to it I get this:
      66c92727-6400-4b19-972b-4c66f3f29b02-image.png

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: NeuralNetwork.loadNAMModel() functional?

      @Dan-Korneff Works here Dan. BTW, you can reduce your CPU usage by doing this:
      0591e0b0-e5f4-47b1-ab39-e91eef083bad-image.png

      In case you weren't aware. Trick from @aaronventure from another thread.

      posted in General Questions
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      Just to report back, it worked perfectly. It even now picks up the lastest value properly, whereas I'm pretty sure it didn't before. Very nice!

      So here's my take on how to do switchable LFO's:

      You primarily rely on the built in modules monophonic/polyphonic flag for reset/retrigger behaviour. Don't bother even building it for your own network.

      Do your sync this way:
      0bc0eeef-5d7a-4c85-822a-a9b901fc0519-image.png

      A branch container, containing two chains. Each one has its own ramp source in it. Make one of them the regular ramp source, the other one the clock_ramp source.

      You can even write a simple math expression to adjust the phase.

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: NeuralNetwork.loadNAMModel() functional?

      Link Preview Image
      Neural Amp Modeler (NAM) in HISE

      @Lurch I mean, it works? The performance is seemingly twice as bad as the NAM plugin, but only because the neural node in HISE is processing two channels, an...

      favicon

      Forum (forum.hise.audio)

      See this post.

      posted in General Questions
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      @Christoph-Hart You legend! Thanks very much! Will test here and report back if any problems. But I've got quite a cool LFO thing here now!

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      @Christoph-Hart I'm a bit confused here.

      I put a regular ramp into my network. I put it inside a no_midi container. When I play and hold some low notes, and crucially then I play and hold some high notes afterwards, I get the same speed ramp out of this.

      But if I try the same with a clock_ramp, the high-notes change the speed of the ramp I get from it, for all of the voices.

      In fact, it doesn't really matter if I play low and high notes. If I play any notes, then while those are held, I play some others... the speed of the clock ramp will change. Why is this??

      This only happens in polyphonic mode. Does not happen in monophonic mode.

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      @Christoph-Hart Gotcha. No, I'm fine using that function. Just didn't know if there was a reason to do it another way.

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      @Christoph-Hart

      @Christoph-Hart said in Scriptnode clock-sync - is there a preferred solution???:

      Why don't you want to use the inbuilt function?

      You mean the built in LFO block??? Coz I'm adding a bunch of waveshaping and warping and fun things to the LFO shapes.

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      Sorry, two more things.

      For retriggering... is it better to just use the monophonic/polyphonic button for the modulator in the module tree....

      de896074-85f0-480d-87f0-13872e4f095f-image.png
      3900fb3c-de63-40ca-b42c-ca9369d8c335-image.png

      Or should I attempt to build the retrigger functionality into the custom envelope modulator scriptnode that I am building?

      I'm intending on compiling it once the network is done.

      Also, am I right in thinking for the clock-ramp it just syncs to the incoming clock no matter what, and that there is no concept of retriggering or free-running to think about??

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: Scriptnode clock-sync - is there a preferred solution???

      Yeah as I said, the multipler feature is great for those super slow LFO's. Awesome when you start combining different expressions to shape the ramp too, to create some organic modulation shapes beyond the basics.

      @Christoph-Hart said in Scriptnode clock-sync - is there a preferred solution???:

      @Orvillain you can container.branch between a normal ramp and the clock sync one for switching between unsynced & synced time.

      Right gotcha, and just sack off the tempo_sync node altogether when using the regular ramp?

      posted in ScriptNode
      OrvillainO
      Orvillain
    • Scriptnode clock-sync - is there a preferred solution???

      Sorry if this is a bit of a dupe. But most topics on this seem a few years old at least.

      033da938-b755-4651-9fe0-3da481e60316-image.png

      I figured out two ways to get a clock sync'd ramp signal. But is one of these preferred?

      I like the Clock Ramp node because you can get very slow LFO's that way by using the tempo division and the multipler control. But if you want free-time, it seems like it might be tricky to do. Whereas the tempo_sync node has a switch that can go between the sync'd and unsync'd time.

      Long-term I'd also be looking for:

      • Sync Yes/No
      • Retrigger Yes/No

      More or less, both of these solutions seem to work. But which do you think is best?

      posted in ScriptNode
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      @Christoph-Hart Yep, that has fixed it, thanks!!

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      I completely wiped HISE off my system, and re-cloned the latest develop.

      I started a completely new project. All it has is a global modulation container, with a hardcoded envelope modulator in it. The modulator is an oscillator going into a sig2mod.

      I tried it with zero parameters, and then I tried it with 1 parameter, and then I tried it with 2 parameters, and then I tried it with 3 parameters. I even also did 10 parameters, 7 of which were connected to the various available parameters, and 3 not connected.

      In all cases, I get the crash. I didn't bother messing with dsym symbols for this one. It's the same crash. Blatantly. Here is the project:
      https://www.dropbox.com/scl/fi/steiw1ydyaq48runfv2i5/anewblankproject.zip?rlkey=or36uwjbj42f0e5tqqrto4dsp&st=rkg2otg6&dl=0

      And here's the previous one:
      https://www.dropbox.com/scl/fi/g5235ul4gkviziv0j6n8r/blankplugin.zip?rlkey=tdxaelcnteyrjy9i8de1bhkqu&dl=0

      Conclusion: There seems to be an issue with link-time optimization, optimizing away something to do with global modulator hardcoded envelope networks. But I don't know what.

      @Christoph-Hart - I'm kinda dead in the water on MacOS until I can figure this out. I have a build I need to send to a client. I suppose I could disable LTO for now, but this is verrrrryyyy strange. Would love to get to the bottom of it.

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      Just to be super sure, I scrapped all my custom HISE changes - increasing script node parameter limit to 64 and setting the channel count in the macros file to 128 - and I still get the same crash.

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      I believe it is this part blowing up:

      HISE/hi_core/hi_modules/hardcoded/HardcodedModuleBase.cpp:506
      → asProcessor().parameterNames.removeRange(getParameterOffset(), INT_MAX);
      

      This is what I got when I did a trace using a release build with symbols, with xcode attached to Ableton Live.

      (lldb) image lookup --address $pc
            Address: blankplugin[0x000000000030167c] (blankplugin.__TEXT.__text + 3146236)
            Summary: blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] int std::__1::__cxx_atomic_load[abi:ne190102]<int>(std::__1::__cxx_atomic_base_impl<int> const*, std::__1::memory_order) at cxx_atomic_impl.h:317:10
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] std::__1::__atomic_base<int, false>::load[abi:ne190102](std::__1::memory_order) const at atomic_base.h:59:12
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::Atomic<int>::get() const at juce_Atomic.h:64:60
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::StringHolder::isEmptyString(juce::StringHolder*) at juce_String.cpp:219:33
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::StringHolder::release(juce::StringHolder*) at juce_String.cpp:162:15
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::StringHolder::release(juce::CharPointer_UTF8) + 4 at juce_String.cpp:169:9
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2676 [inlined] juce::String::~String() + 4 at juce_String.cpp:247:5
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] juce::String::~String() at juce_String.cpp:246:1
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] juce::Identifier::~Identifier() at juce_Identifier.cpp:27:37
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] juce::Identifier::~Identifier() at juce_Identifier.cpp:27:36
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] std::__1::enable_if<!IsTriviallyCopyable<juce::Identifier>::value, void>::type juce::ArrayBase<juce::Identifier, juce::DummyCriticalSection>::removeElementsInternal<juce::Identifier>(int, int) + 60 at juce_ArrayBase.h:508:31
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2612 [inlined] juce::ArrayBase<juce::Identifier, juce::DummyCriticalSection>::removeElements(int, int) at juce_ArrayBase.h:363:13
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2612 [inlined] juce::Array<juce::Identifier, juce::DummyCriticalSection, 0>::removeRange(int, int) at juce_Array.h:926:20
                     blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2612 at HardcodedModuleBase.cpp:506:33
      
      (lldb) frame select 13
      expr -- (int)getParameterOffset()
      expr -- (int)asProcessor().parameterNames.size()
      frame #13: 0x000000017d679638 blankplugin`hise::HardcodedSwappableEffect::setEffect(this=0x000000011dcb8000, factoryId=<unavailable>, (null)=<unavailable>) at HardcodedModuleBase.cpp:506:33 [opt]
         503 			}
         504 			else
         505 			{
      -> 506 				asProcessor().parameterNames.removeRange(getParameterOffset(), INT_MAX);
          				                             ^
         507 			}
         508 	
         509 			auto illegalIds = getIllegalParameterIds();
      (int) $4 = 2
      error: Couldn't look up symbols:
        __ZN4hise24HardcodedSwappableEffect11asProcessorEv
      Hint: The expression tried to call a function that is not present in the target, perhaps because it was optimized out by the compiler.
      

      Is any of this useful?

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      Attaching xcode as a debugger - which to do I had to use this script:https://gist.github.com/talaviram/1f21e141a137744c89e81b58f73e23c3

      So yes, it is definitely crashing in setEffect. It looks like
      d7dfbd52-902c-4b04-a5c3-3b45a3558751-image.png

      ->  0x3419347c4 <+2820>: ldar   w8, [x0]
      MainThread (1): EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
      

      So I would suggest that link-time optimization is corrupting a pointer, and garbage is being fed into setEffect() but I am honestly reaching the limits of my debugging skills here now.

      Closest I can get to is:
      HISE/hi_core/hi_modules/hardcoded/HardcodedModuleBase.cpp

      Line 427:
      bool HardcodedSwappableEffect::setEffect(const String& factoryId, bool /unused/)

      The crash happens somewhere in this function.

      @Christoph-Hart Is any of this useful??

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      ScriptEnvNetwork.xml

      This is my network file.

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      @Christoph-Hart

      I turned on all symbol support and recompiled with LTO set to 'Monolithic' and this is the crash I get:

      Thread 0 Crashed:: MainThread Dispatch queue: com.apple.main-thread
      0   blankplugin                   	       0x17d35567c hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680
      1   blankplugin                   	       0x17d35d4fc hise::HardcodedSwappableEffect::restoreHardcodedData(juce::ValueTree const&) + 308
      2   blankplugin                   	       0x17d13ae60 hise::Processor::restoreFromValueTree(juce::ValueTree const&) + 3376
      3   blankplugin                   	       0x17d14679c hise::EnvelopeModulator::restoreFromValueTree(juce::ValueTree const&) + 40
      4   blankplugin                   	       0x17d13ae60 hise::Processor::restoreFromValueTree(juce::ValueTree const&) + 3376
      5   blankplugin                   	       0x17d17702c hise::ModulatorSynth::restoreFromValueTree(juce::ValueTree const&) + 1496
      6   blankplugin                   	       0x17d368ce0 non-virtual thunk to hise::GlobalModulatorContainer::restoreFromValueTree(juce::ValueTree const&) + 40
      7   blankplugin                   	       0x17d13ae60 hise::Processor::restoreFromValueTree(juce::ValueTree const&) + 3376
      8   blankplugin                   	       0x17d17702c hise::ModulatorSynth::restoreFromValueTree(juce::ValueTree const&) + 1496
      9   blankplugin                   	       0x17d1ad784 hise::ModulatorSynthChain::restoreFromValueTree(juce::ValueTree const&) + 336
      10  blankplugin                   	       0x17d40d3f0 hise::FrontendProcessor::createPreset(juce::ValueTree const&) + 152
      11  blankplugin                   	       0x17d40bd84 hise::FrontendProcessor::FrontendProcessor(juce::ValueTree&, juce::AudioDeviceManager*, juce::AudioProcessorPlayer*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::ValueTree*, juce::ValueTree*) + 10924
      12  blankplugin                   	       0x17d062294 juce::JuceVST3Component::JuceVST3Component(Steinberg::Vst::IHostApplication*) + 4404
      13  blankplugin                   	       0x17d059fa0 juce::createComponentInstance(Steinberg::Vst::IHostApplication*) + 36
      14  blankplugin                   	       0x17d06de18 juce::JucePluginFactory::createInstance(char const*, char const*, void**) + 216
      15  Live                          	       0x106e308c4 0x104860000 + 39651524
      16  Live                          	       0x106c5261c 0x104860000 + 37692956
      17  Live                          	       0x106c52008 0x104860000 + 37691400
      18  Live                          	       0x106c51824 0x104860000 + 37689380
      19  Live                          	       0x105c147e4 0x104860000 + 20662244
      20  Live                          	       0x105c144ac 0x104860000 + 20661420
      21  Live                          	       0x105c233d8 0x104860000 + 20722648
      22  Live                          	       0x105bf8cf4 0x104860000 + 20548852
      23  Live                          	       0x106e38890 0x104860000 + 39684240
      24  Live                          	       0x106db8758 0x104860000 + 39159640
      25  Live                          	       0x106d50b38 0x104860000 + 38734648
      26  Live                          	       0x1062bb118 0x104860000 + 27635992
      27  Live                          	       0x1062e3de0 0x104860000 + 27803104
      28  Live                          	       0x106280154 0x104860000 + 27394388
      29  Live                          	       0x1062e1084 0x104860000 + 27791492
      30  Live                          	       0x1062e0d08 0x104860000 + 27790600
      31  Live                          	       0x1062e0ec0 0x104860000 + 27791040
      32  Live                          	       0x1070c5b7c 0x104860000 + 42359676
      33  Live                          	       0x1076ca798 0x104860000 + 48670616
      34  Live                          	       0x1076ca408 0x104860000 + 48669704
      35  Live                          	       0x1059e44ec 0x104860000 + 18367724
      36  Live                          	       0x10572f654 0x104860000 + 15529556
      37  Live                          	       0x10572f1c4 0x104860000 + 15528388
      38  Live                          	       0x10593dc9c 0x104860000 + 17685660
      39  Foundation                    	       0x1949d0fcc __NSFireTimer + 104
      40  CoreFoundation                	       0x1933e2e14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
      41  CoreFoundation                	       0x1933e2ad4 __CFRunLoopDoTimer + 980
      42  CoreFoundation                	       0x1933e2610 __CFRunLoopDoTimers + 332
      43  CoreFoundation                	       0x1933c8a18 __CFRunLoopRun + 1848
      44  CoreFoundation                	       0x1933c7c58 CFRunLoopRunSpecific + 572
      45  HIToolbox                     	       0x19ee5c27c RunCurrentEventLoopInMode + 324
      46  HIToolbox                     	       0x19ee5f4e8 ReceiveNextEventCommon + 676
      47  HIToolbox                     	       0x19efea484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
      48  AppKit                        	       0x1972efab4 _DPSNextEvent + 684
      49  AppKit                        	       0x197c8e5b0 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
      50  AppKit                        	       0x1972e2c64 -[NSApplication run] + 480
      51  Live                          	       0x10593d068 0x104860000 + 17682536
      52  dyld                          	       0x192f3eb98 start + 6076
      
      

      Looks to be related to restoring a JUCE value tree??

      This does not happen when LTO is set to 'No' - I'm going to try 'Incremental' as well - I'm changing the VST3 and the SharedCode targets.

      BTW - this crash happens with or without calling .setEffect() in my Interface script. IE: Even if I comment this out:

      const var HardcodedEnvelopeModulator1 = Synth.getSlotFX("HardcodedEnvelopeModulator1");
      HardcodedEnvelopeModulator1.setEffect("ScriptEnvNetwork");
      

      I still get the crash.

      posted in Bug Reports
      OrvillainO
      Orvillain
    • RE: Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

      Turning off link-time optimization in the xcode project seems to stop the crash from happening. It was originally set to 'Monolithic' for release, and turned off for 'debug' so that explains why debug was working and release was not.

      I'm trying to build a release version with symbol support so I can see what the heck is going on.

      posted in Bug Reports
      OrvillainO
      Orvillain