HISE Logo Forum
    • Categories
    • Register
    • Login

    Develop branch cannot support more than 19 scripts

    Scheduled Pinned Locked Moved Bug Reports
    58 Posts 4 Posters 2.6k 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.
    • d.healeyD
      d.healey @Lindon
      last edited by

      @lindon Good news (sort of) is I get an instant crash too (on Debian). Now to debug :)

      Free HISE Bootcamp Full Course for beginners.
      YouTube Channel - Public HISE tutorials
      My Patreon - HISE tutorials

      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @d.healey
        last edited by

        First error I get {PROJECT_FOLDER}backgroundBass.png wasn't found. I doubt this is the cause of the crash though.

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        LindonL 1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey
          last edited by d.healey

          I see some UI updates from the MIDI callback but they haven't been deferred. I don't think this is the cause of the crash either because those callbacks aren't triggered when loading the project, but it might be something to look into.

          I managed to bypass everything in a debug build and I'm able to open it in the release build. Now I'm enabling things bit by bit to see if I can narrow down the crash.

          Free HISE Bootcamp Full Course for beginners.
          YouTube Channel - Public HISE tutorials
          My Patreon - HISE tutorials

          LindonL 1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @d.healey
            last edited by

            @d-healey said in Develop branch cannot support more than 19 scripts:

            backgroundBass.png

            huh -- I cant find a reference to backgroundBass.png anywhere....

            HISE Development for hire.
            www.channelrobot.com

            d.healeyD 1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey @Lindon
              last edited by

              @lindon
              aae55520-434a-48d1-b833-3435dc0c9328-image.png

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @d.healey
                last edited by

                @d-healey said in Develop branch cannot support more than 19 scripts:

                I see some UI updates from the MIDI callback but they haven't been deferred. I don't think this is the cause of the crash either because those callbacks aren't triggered when loading the project, but it might be something to look into.

                I managed to bypass everything in a debug build and I'm able to open it in the release build. Now I'm enabling things bit by bit to see if I can narrow down the crash.

                yep sure -- can you point at them to save me looking for them?

                HISE Development for hire.
                www.channelrobot.com

                d.healeyD 1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey @Lindon
                  last edited by

                  @lindon said in Develop branch cannot support more than 19 scripts:

                  can you point at them to save me looking for them?

                  Yep will do.

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

                  LindonL 1 Reply Last reply Reply Quote 0
                  • LindonL
                    Lindon @d.healey
                    last edited by

                    @d-healey meanwhile I'm going in the complete opposite direction and rebuilding from the ground up .....

                    So far I've re-set up all the backend sound sources and fx and rebuilt the UI, I've found:

                    -- only that HISE develop doesn't seem to like Slot FX very much (or copying them around anyway..)

                    HISE Development for hire.
                    www.channelrobot.com

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

                      @lindon said in Develop branch cannot support more than 19 scripts:

                      @d-healey meanwhile I'm going in the complete opposite direction and rebuilding from the ground up .....

                      So far I've re-set up all the backend sound sources and fx and rebuilt the UI, I've found:

                      -- only that HISE develop doesn't seem to like Slot FX very much (or copying them around anyway..)

                      ....and I started adding in the scripts ... leaving the interface script until last....

                      they all work fine right up until I add the rangefilter scripts, and it crashes....

                      Here's the contents of the range filter scripts:

                      const var LowRange = Content.addKnob("LowRange", 0, 0);
                      LowRange.setRange(0, 126, 1);
                      const var HighRange = Content.addKnob("HighRange", 150, 0);
                      HighRange.setRange(1, 127, 1);
                      const var FadeButton = Content.addButton("FadeButton", 300, 12);
                      
                      const var SubMults = [0.7,0.65,0.6,0.5,0.4,0.3,0.25,0.2,0.1,0.05,0.025,0.0125,0.0125];
                      SubMults.reserve(15);
                      
                      function onNoteOn()
                      {
                          //Console.print(Message.getNoteNumber());
                          if (FadeButton.getValue() == 0)
                          {
                              // not fading out strictly cutting off
                              if(Message.getNoteNumber() < LowRange.getValue() || Message.getNoteNumber() > (HighRange.getValue()))
                              {
                                  Message.ignoreEvent(true);
                              }
                          }else{
                              //cut things outside the fade ranges...
                              if(Message.getNoteNumber() < LowRange.getValue()-12 || Message.getNoteNumber() > (HighRange.getValue()+12))
                              {
                                  // outside everything - just cut.
                      	        Message.ignoreEvent(true);
                              }
                              if (Message.getNoteNumber() > HighRange.getValue() && Message.getNoteNumber() <= (HighRange.getValue()+12))
                              {
                                  // in the high range fade range
                                  Message.setVelocity(Message.getVelocity()* SubMults[Message.getNoteNumber() - HighRange.getValue()]);
                              }
                              if (Message.getNoteNumber() < LowRange.getValue() && Message.getNoteNumber() >= (LowRange.getValue()-12))
                              {
                                  // in the low range fade range
                                  Message.setVelocity(Message.getVelocity()* SubMults[LowRange.getValue() - Message.getNoteNumber() ]);
                              }
                              
                          }
                      	    
                      }
                       function onNoteOff()
                      {
                          if (FadeButton.getValue() == 0)
                          {
                              // no fade just cut
                      	    if(Message.getNoteNumber() < LowRange.getValue() || Message.getNoteNumber() > (HighRange.getValue()+12))
                      	        Message.ignoreEvent(true);
                          }else{
                              // is it outside all fading ranges?
                              if(Message.getNoteNumber() < LowRange.getValue()-12 || Message.getNoteNumber() > (HighRange.getValue()+12))
                      	        Message.ignoreEvent(true);
                          }
                      	    
                      }
                       function onController()
                      {
                      	
                      }
                       function onTimer()
                      {
                      	
                      }
                       function onControl(number, value)
                      {
                      	
                      }
                       
                      

                      -- nothing is jumping out at me....

                      HISE Development for hire.
                      www.channelrobot.com

                      d.healeyD 1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @Lindon
                        last edited by

                        @lindon I don't see anything unusual there. I'm off to cook dinner but I'll dig a bit deeper when I'm back.

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - HISE tutorials

                        LindonL 2 Replies Last reply Reply Quote 0
                        • LindonL
                          Lindon @d.healey
                          last edited by

                          @d-healey --and now just like every other version its crashing no matter what I do to it.....grrrrrrrrrrrrrrrrrrrrrrrrr

                          HISE Development for hire.
                          www.channelrobot.com

                          1 Reply Last reply Reply Quote 0
                          • ustkU
                            ustk
                            last edited by ustk

                            @Lindon I don’t know if it’ll have an impact but instead of calling things multiple times I would store the note number in a reg, and same thing for the range values

                            Hise made me an F5 dude, browser just suffers...

                            LindonL d.healeyD 2 Replies Last reply Reply Quote 0
                            • LindonL
                              Lindon @ustk
                              last edited by

                              @ustk what?

                              HISE Development for hire.
                              www.channelrobot.com

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @d.healey
                                last edited by

                                @d-healey said in Develop branch cannot support more than 19 scripts:

                                @lindon I don't see anything unusual there. I'm off to cook dinner but I'll dig a bit deeper when I'm back.

                                Yeah I have to call it quits for today too?

                                HISE Development for hire.
                                www.channelrobot.com

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

                                  @lindon said in Develop branch cannot support more than 19 scripts:

                                  @ustk what? er we are talking about using multiple scripts (one per voice) so its more modular...

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @ustk
                                    last edited by

                                    @ustk said in Develop branch cannot support more than 19 scripts:

                                    I would store the note number in a reg

                                    You can use a local in the MIDI callbacks, I don't know if this is better than a reg...

                                    Free HISE Bootcamp Full Course for beginners.
                                    YouTube Channel - Public HISE tutorials
                                    My Patreon - HISE tutorials

                                    ustkU 2 Replies Last reply Reply Quote 0
                                    • ustkU
                                      ustk @d.healey
                                      last edited by

                                      @d-healey For what I understand a reg is faster, hence more suitable for real-time stuff...

                                      Hise made me an F5 dude, browser just suffers...

                                      1 Reply Last reply Reply Quote 0
                                      • ustkU
                                        ustk @d.healey
                                        last edited by

                                        @d-healey Also I thought locals were only declarable in an inline, never tried in a midi CB though...

                                        Hise made me an F5 dude, browser just suffers...

                                        d.healeyD 1 Reply Last reply Reply Quote 0
                                        • d.healeyD
                                          d.healey @ustk
                                          last edited by d.healey

                                          @ustk said in Develop branch cannot support more than 19 scripts:

                                          For what I understand a reg is faster, hence more suitable for real-time stuff...

                                          Interface script should be deferred in this case and shouldn't be doing real time stuff Ignore me, I was thinking this is the main interface script :p

                                          Also I thought locals were only declarable in an inline, never tried in a midi CB though...

                                          With the exception of the built in callbacks that seems to be true.

                                          Free HISE Bootcamp Full Course for beginners.
                                          YouTube Channel - Public HISE tutorials
                                          My Patreon - HISE tutorials

                                          1 Reply Last reply Reply Quote 1
                                          • d.healeyD
                                            d.healey
                                            last edited by d.healey

                                            After disabling everything and re-enabling it one by one, saving in between and reloading HISE. The project now opens every time without crashing!

                                            @Lindon I'll send you a snippet that is opening for me and you can see if it magically works for you as well.

                                            Regarding the real time UI stuff, it's parts like this.

                                            for (ondx=0; ondx<7;ondx++)
                                            {
                                                if (FMAmtVelos[ondx].getValue() == 1)
                                                {
                                                    //Console.print((Message.getVelocity()/ 1.27)/100); // * (127/100));
                                                             
                                                    FMAmounts[ondx].setValue((Message.getVelocity()/ 1.27)/100);
                                                    FMAmounts[ondx].changed();
                                               }
                                            }
                                            

                                            I try to avoid loops in real time altogether if possible, but this one is just updating a UI component and triggering its callback. This should be in a deferred script. The action that you need to happen in real time (presumably whatever happens when the component's callback is triggered) should go in a separate non-deferred script. This approach will probably require a significant restructuring of your project at this stage though so if it's working for you then don't go down the rabbit hole.

                                            The only other thing I noticed in general about the project is it takes a bit of time to open and the CPU usage idles quite high (around 10%) for me. I think this is due to the effects and other modules rather than your scripts so probably not much you can do about it.

                                            Free HISE Bootcamp Full Course for beginners.
                                            YouTube Channel - Public HISE tutorials
                                            My Patreon - HISE tutorials

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

                                            19

                                            Online

                                            2.0k

                                            Users

                                            12.7k

                                            Topics

                                            110.1k

                                            Posts