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.
    • 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
                            • LindonL
                              Lindon @d.healey
                              last edited by

                              @d-healey - great thanks mate - I will give it a try - what was the problem can you identify it?

                              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:

                                what was the problem can you identify it?

                                I wasn't able to pin it down to anything in particular.

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

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

                                  @d-healey Maybe comparing the 2 project folders (original and fixed) with a tool could show up the difference and point to a Hise bug (like in an xml file or something)?

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

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

                                  19

                                  Online

                                  2.0k

                                  Users

                                  12.7k

                                  Topics

                                  110.1k

                                  Posts