HISE Logo Forum
    • Categories
    • Register
    • Login

    How do I load a midi script programmatically?

    Scheduled Pinned Locked Moved Scripting
    26 Posts 4 Posters 341 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.
    • O
      Orvillain
      last edited by

      I made a video showing what happens when you just try to connect to an external script manually, not even using code.

      It seems to be broken.

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

        @Orvillain That's the correct behaviour. Once you're connected to an external script you lose those tabs. The idea is if it's external you shouldn't be editing it in HISE - although you still can in the main code editor but I think that's a more recent feature.

        I made a video about this several years ago:

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

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

          @d-healey Riiiiight. That seems very odd to me. HISE could at least draw in the scripts and make it read only, or otherwise indicate success. Because it looks broken to me, and is the same "symptom" as what I see when trying to connect a script in code.

          The only difference being when I try to connect a script in code, I get an error that says "onControl could not be parsed!"

          Hmmmmm. I guess I need to dig into this some more. Your tip about removing the "Scripts" folder from the path was a good one, but does not seem to have made any difference.

          But now that you've said what you've said... I'm wondering, how do I even confirm the script has been attached successfully? It looks exactly the same in the actual project:
          ae189414-edf9-4bd0-aa3b-d193f23191be-image.png

          And alllllll this time, I've been assuming it didn't work properly because of how empty it looks, and also because of the parse error in the log.

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

            @Orvillain If you add controls to your scripts interface they will show up in that blank area.

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            1 Reply Last reply Reply Quote 1
            • O
              Orvillain
              last edited by

              Okay. I've gotten it to work by replacing the forward slash with a backslash. This is on Windows. I don't know if MacOS will cope with that???

              I was reasonably sure that even on Windows this should work?? It works for a bunch of other things, iirc.

              ad4392ad-3d1c-42e2-8704-c166d73f7820-image.png

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

                @Orvillain you are going to have to use different separators based on the OS in question
                fwd slash for mac os backslash for windows:

                Link Preview Image
                HISE | Docs

                favicon

                (docs.hise.dev)

                HISE Development for hire.
                www.channelrobot.com

                O d.healeyD 2 Replies Last reply Reply Quote 1
                • O
                  Orvillain @Lindon
                  last edited by

                  @Lindon Thanks!

                  Really sorry for the n00b question here. It was just boggling my mind, and I was making it a lot more complicated than it needed to be.

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

                    @Lindon said in How do I load a midi script programmatically?:

                    you are going to have to use different separators based on the OS in question
                    fwd slash for mac os backslash for windows:

                    You should be able to use the same on all OS and HISE will handle it. I think the issue here is you don't need to put a slash of any kind after {PROJECT_FOLDER} because that wildcard includes a slash.

                    Libre Wave - Freedom respecting instruments and effects
                    My Patreon - HISE tutorials
                    YouTube Channel - Public HISE tutorials

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

                      @d-healey said in How do I load a midi script programmatically?:

                      @Lindon said in How do I load a midi script programmatically?:

                      you are going to have to use different separators based on the OS in question
                      fwd slash for mac os backslash for windows:

                      You should be able to use the same on all OS and HISE will handle it. I think the issue here is you don't need to put a slash of any kind after {PROJECT_FOLDER} because that wildcard includes a slash.

                      You should, but my experience is you cant...

                      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 How do you include files or fonts?

                        I do this and it works on all systems

                        Engine.loadFontAs("{PROJECT_FOLDER}Fonts/Text/Inter-Regular.ttf", "regular");

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

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

                          @d-healey I do what i've always done and put the font in the images folder and call this:

                          Engine.loadFontAs("{PROJECT_FOLDER}DIN Alternate Bold.otf", "DIN Alternate");

                          works everywhere.

                          Where it doesnt work is if you want to declare some sub-folder path i.e.

                          {PROJECTS}\mysub\yoursub\afile.ext

                          so its simple to work around:

                          // on init
                          const var WINDOWS = "WIN";
                          const var MAC = "OSX";
                          const var OS = Engine.getOS();
                          
                          
                          //elsewhere...
                          
                          	if(OS == WINDOWS)
                          	{
                          		theLoopPlayers[pos].setFile(LP_LoopFileFolder + "\\"+ component.get("text") + ".wav");
                          	}else{
                          		theLoopPlayers[pos].setFile(LP_LoopFileFolder + "/"+ component.get("text") + ".wav");			
                          	};	
                          

                          You of course will also want to check for Linux...

                          HISE Development for hire.
                          www.channelrobot.com

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

                            @Lindon said in How do I load a midi script programmatically?:

                            {PROJECTS}\mysub\yoursub\afile.ext

                            You don't need a slash after the wildcard, and if you use forward slashes only it will work on all systems. Don't know about the lopp player though.

                            Libre Wave - Freedom respecting instruments and effects
                            My Patreon - HISE tutorials
                            YouTube Channel - Public HISE tutorials

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

                              @d-healey said in How do I load a midi script programmatically?:

                              @Lindon said in How do I load a midi script programmatically?:

                              {PROJECTS}\mysub\yoursub\afile.ext

                              You don't need a slash after the wildcard, and if you use forward slashes only it will work on all systems. Don't know about the lopp player though.

                              yeah that might work for you but as I say its at the very least unreliable for me, it might be cases of paths without {PROJECT_FOLDER} in them

                              HISE Development for hire.
                              www.channelrobot.com

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

                              13

                              Online

                              1.7k

                              Users

                              11.8k

                              Topics

                              102.5k

                              Posts