Forum
    • Categories
    • Register
    • Login

    Preset Crashes DAW

    Scheduled Pinned Locked Moved General Questions
    presetcrashpreset crash
    35 Posts 6 Posters 9.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Dan KorneffD
      Dan Korneff @soundsync
      last edited by

      @trillbilly here's a quick video I made on the general process:
      https://forum.hise.audio/topic/6760/big-problems-with-a-little-plugin/19?_=1673301032810

      Dan Korneff - Producer / Mixer / Audio Nerd

      soundsyncS 2 Replies Last reply Reply Quote 3
      • soundsyncS
        soundsync @Dan Korneff
        last edited by

        @Dan-Korneff Thanks! Ill do this today hopefully

        Best,

        Aaron
        https://soundsync.dev
        https://moonwavefx.com

        1 Reply Last reply Reply Quote 0
        • soundsyncS
          soundsync @Dan Korneff
          last edited by

          @Dan-Korneff Ok so I think I figured this out on Windows with VS. I have Ableton connected to VS and launches upon building the debug. I love my plugin in Ableton and immediately get a "Ableton Live 10 Suite.exe has triggered a breakpoint" message.

          	jassert(filter != nullptr); //This line (112) is where it triggers the breakpoint.
          
          	if (filter != nullptr)
          	{
          		switch (parameter)
          		{
          		case BandParameter::Gain:	filter->setGain(Decibels::decibelsToGain(newValue)); break;
          		case BandParameter::Freq:	filter->setFrequency(newValue); break;
          		case BandParameter::Q:		filter->setQ(newValue); break;
          		case BandParameter::Type:	filter->setType((int)newValue); break;
          		case BandParameter::Enabled:filter->setEnabled(newValue >= 0.5f); break;
          		case numBandParameters:
          		default:                    break;
          		}
          	}
          	else
          	{
          		debugError(this, "Invalid attribute index: " + String(index));
          

          In the Callstack, this is the only bit that has an arrow next to it

          >	Mesosphere Debug.vst3!hise::CurveEq::setInternalAttribute(int index, float newValue) Line 112	C++
          
          

          How do I move forward with the debugging of what looks to be a Parametric EQ? I do have 2 of them and both are Draggable Filter Panels that can be saved in preset.

          Best,

          Aaron
          https://soundsync.dev
          https://moonwavefx.com

          Matt_SFM 1 Reply Last reply Reply Quote 0
          • Matt_SFM
            Matt_SF @soundsync
            last edited by

            @trillbilly just taking a shot here but check your script in HISE, maybe you're addressing an eq parameter which doesn't exist...?

            Develop branch
            Win10 & VS17 / Ventura & Xcode 14. 3

            soundsyncS 1 Reply Last reply Reply Quote 0
            • soundsyncS
              soundsync @Matt_SF
              last edited by soundsync

              @Matt_SF That was my initial thought but I couldnt see anything.

              The only EQs I have are for a Dry and Wet Filter. Both are also Draggable Filter Panels. Both the "FilterTile" and "WetFilterTile" have the correct ProcessorID called in the Property Settings. Both Draggable Filter Panels show and seem to work just fine.

              I then use this code to add the to user preset.

              //DRAGGABLE EQ SAVE IN PRESETS
              //Filter
              const var FilterEQ = Synth.getEffect("FilterEQ");
              
              Engine.addModuleStateToUserPreset("FilterEQ");
              
              //Wet Filter
              const var WetFilter = Synth.getEffect("WetFilter");
              
              Engine.addModuleStateToUserPreset("WetFilter");
              

              The only other code I can think of that calls for anything to do with an EQ is a "Blackout" img that appears over the effect if it is powered off. This also seems to be coded correctly and working fine.

              Here is how I have this scripted

              //POWER BLACKOUT
              //FILTER1 - DRY
              const var BlackoutImage3 = Content.getComponent("BlackoutImage3");
              
              inline function onFilterPowerbtnControl(component, value)
              {
              	BlackoutImage3.showControl(!value);
              	Content.getComponent("FilterPowerbtn").setValue(value);
              	
              	FilterEQ.setAttribute(FilterEQ.setBypassed(!value), value);
              	Content.getComponent("FilterPowerbtn").setValue(value);
              	
              };
              
              Content.getComponent("FilterPowerbtn").setControlCallback(onFilterPowerbtnControl);
              

              Best,

              Aaron
              https://soundsync.dev
              https://moonwavefx.com

              LindonL 1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @soundsync
                last edited by

                @trillbilly

                this looks dodgy...to me...

                FilterEQ.setAttribute(FilterEQ.setBypassed(!value), value);
                

                HISE Development for hire.
                www.channelrobot.com

                Matt_SFM soundsyncS 2 Replies Last reply Reply Quote 1
                • Matt_SFM
                  Matt_SF @Lindon
                  last edited by

                  @Lindon you were quicker than me 😆

                  Develop branch
                  Win10 & VS17 / Ventura & Xcode 14. 3

                  LindonL 1 Reply Last reply Reply Quote 0
                  • LindonL
                    Lindon @Matt_SF
                    last edited by

                    @Matt_SF said in Preset Crashes DAW:

                    @Lindon you were quicker than me 😆

                    just passin thru....

                    HISE Development for hire.
                    www.channelrobot.com

                    1 Reply Last reply Reply Quote 0
                    • soundsyncS
                      soundsync @Lindon
                      last edited by

                      @Lindon What would be better way for me to script something like this? I've got this on every effect module lol.

                      Best,

                      Aaron
                      https://soundsync.dev
                      https://moonwavefx.com

                      LindonL 1 Reply Last reply Reply Quote 0
                      • LindonL
                        Lindon @soundsync
                        last edited by

                        @trillbilly what is the attribute you are trying to change?

                        HISE Development for hire.
                        www.channelrobot.com

                        soundsyncS 2 Replies Last reply Reply Quote 0
                        • soundsyncS
                          soundsync @Lindon
                          last edited by

                          @Lindon Just to cover the unused effect modules with a "Blackout" image so they have the appearance of being "Turned Off".

                          Power Off = Blackout Image ON, covers Effect Panel
                          Power On = Blackout Image OFF, revealing effect knobs/sliders.

                          Best,

                          Aaron
                          https://soundsync.dev
                          https://moonwavefx.com

                          LindonL 1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @soundsync
                            last edited by Lindon

                            @trillbilly so what are these three lines for then?

                            	Content.getComponent("FilterPowerbtn").setValue(value);
                            	
                            	FilterEQ.setAttribute(FilterEQ.setBypassed(!value), value);
                            	Content.getComponent("FilterPowerbtn").setValue(value);
                            

                            especially as the first and third are the same...

                            if you just want to bypass an effect all you need say is:

                            	FilterEQ.setBypassed(1 - value);
                            

                            HISE Development for hire.
                            www.channelrobot.com

                            soundsyncS 1 Reply Last reply Reply Quote 0
                            • soundsyncS
                              soundsync @Lindon
                              last edited by

                              @Lindon @Matt_SF I just removed all code, panels, tiles, etc that had to do with either EQ. I re-compiled in HISE with no issues but the problem of loading presets and crashing still persists.

                              Best,

                              Aaron
                              https://soundsync.dev
                              https://moonwavefx.com

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @soundsync
                                last edited by

                                @trillbilly well fix your EQ code first - and then remove your sample loader...and try again.

                                HISE Development for hire.
                                www.channelrobot.com

                                1 Reply Last reply Reply Quote 0
                                • soundsyncS
                                  soundsync @Lindon
                                  last edited by

                                  @Lindon

                                  	Content.getComponent("FilterPowerbtn").setValue(value); //power button of the effect, how else would "Blackout" image know to be ON or OFF?
                                  	
                                  	FilterEQ.setAttribute(FilterEQ.setBypassed(!value), value); //this is to bypass the effect
                                  	Content.getComponent("FilterPowerbtn").setValue(value);  //this is a mistake, I was thinking incorrectly.
                                  

                                  Best,

                                  Aaron
                                  https://soundsync.dev
                                  https://moonwavefx.com

                                  LindonL 1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @soundsync
                                    last edited by Lindon

                                    @trillbilly

                                    its a miracle that this works at all:

                                    FilterEQ.setAttribute(FilterEQ.setBypassed(!value), value); //this is to bypass the effect
                                    

                                    it should be this:

                                    FilterEQ.setBypassed(1 - value);
                                    

                                    so you call back should look like this:

                                    inline function onFilterPowerbtnControl(component, value)
                                    {
                                    	BlackoutImage3.showControl(1 - value);
                                    	FilterEQ.setBypassed(1 - value);
                                    };
                                    Content.getComponent("FilterPowerbtn").setControlCallback(onFilterPowerbtnControl);
                                    
                                    

                                    https://docs.hise.audio/scripting/scripting-api/effect/index.html#setbypassed

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    soundsyncS 1 Reply Last reply Reply Quote 0
                                    • soundsyncS
                                      soundsync @Lindon
                                      last edited by soundsync

                                      @Lindon Awesome, thanks! That does look alot better in my script. My initial issue still persist of presets crashing within HISE.

                                      When you say "Remove Sample Loader" do you mean the script + the panels? I have removed the sample loader settings via the .preset file and then the presets load. It's only when the preset calls for a sample to be loaded it seems.

                                      Best,

                                      Aaron
                                      https://soundsync.dev
                                      https://moonwavefx.com

                                      LindonL 1 Reply Last reply Reply Quote 0
                                      • LindonL
                                        Lindon @soundsync
                                        last edited by

                                        @trillbilly well you need to post as snippet

                                        HISE Development for hire.
                                        www.channelrobot.com

                                        soundsyncS 2 Replies Last reply Reply Quote 0
                                        • soundsyncS
                                          soundsync @Lindon
                                          last edited by

                                          @Lindon I tried to create minimal snippet of the problem but the issue only occurs in my project. If I create multiple samplers with the CustomSampleImport scripts and use it, it works just fine saving & recalling presets.

                                          When I bring that same script into my project, all compiles fine but recalls presets incorrectly and crashes.

                                          Do you have another suggestion on how to create a usable minimal snippet?

                                          Best,

                                          Aaron
                                          https://soundsync.dev
                                          https://moonwavefx.com

                                          1 Reply Last reply Reply Quote 0
                                          • soundsyncS
                                            soundsync @Lindon
                                            last edited by

                                            @Lindon Here is the SampleDropper from within a .preset file that crashes.

                                            
                                                <Control type="ScriptPanel" id="SampleDropper" value="JSON{&quot;isCustom&quot;: true, &quot;value&quot;: &quot;273.nT6K8CFb.zCB.HqSy3BfKM.ZQBjVX.F.uHylje+06kKaOKzizB5UBSXaqTqVzViHswRluFAXo2Fe4w6Cppt.LDI.HCJ5hFUH44jUiMAmoPzcnkc0dxUOrn1SBtKcQKwgv3s.VGgCoabEBJvgY.F+Aluu9Fpd6cUIaX9IlV1Ww2+NhJ5SK99ghypzYTureHnLvwIY0FxSZrGjGq96hvFpi.VkgPNRawT7uKczCbKq9Y9a9dmR0KZlo4vlnlKiHIoqa01xi5MdRm3vTCPe9ZNtGq9vfa0HCarHj+vEn.JIPPidPorn4hSQwHyPM3TPFvjg.LXyWdq7hAUcqUC8RwYv2JaWUpAQ6rmQe8kRnEF+5dKC&quot;}"/>
                                            
                                            

                                            If I remove everything and leave just the code below, all will load but with no WAV file (obviously).

                                            <Control type="ScriptPanel" id="SampleDropper" value=""/>
                                            

                                            Best,

                                            Aaron
                                            https://soundsync.dev
                                            https://moonwavefx.com

                                            soundsyncS 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            18

                                            Online

                                            3.0k

                                            Users

                                            14.0k

                                            Topics

                                            121.6k

                                            Posts