HISE Logo Forum
    • Categories
    • Register
    • Login

    Populate samplemaps based on folder choice(almost working)

    Scheduled Pinned Locked Moved Scripting
    25 Posts 5 Posters 1.3k 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.
    • ten7kurT
      ten7kur
      last edited by

      wiget does no appear in API,. im at a loss..

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

        @ten7kur yes, you are starting to confuse me now too... this might not be for you. :-)

        HISE Development for hire.
        www.channelrobot.com

        1 Reply Last reply Reply Quote 0
        • ten7kurT
          ten7kur
          last edited by

          @ten7kur said in Populate samplemaps based on folder choice(almost working):

          setMouseCallback

          I cant manage to find any example with viewports and clickEvents.
          Can you point to an example?

          LindonL ustkU 2 Replies Last reply Reply Quote 0
          • LindonL
            Lindon @ten7kur
            last edited by

            @ten7kur viewports dont have mouse call backs - only panels do - read the documentation:

            Link Preview Image
            HISE | Docs

            favicon

            (docs.hise.audio)

            HISE Development for hire.
            www.channelrobot.com

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

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • ten7kurT
                ten7kur
                last edited by

                So how come the SamplemapList viewport is not populating on Category viewport selection?
                Only populates on INIT.

                Im doing this in onCATControl

                if(items[value] == "A"){	    
                	    SamplemapList.set("items", "");
                        SMLdir_select = "Folder1/Sub-folderA";
                	    SamplemapList.set("items", formattedSamplemaps.join("\n"));
                
                ustkU 1 Reply Last reply Reply Quote 0
                • ustkU
                  ustk @ten7kur
                  last edited by

                  @ten7kur Have a look at the watchtable, the samplemaps names and start/end are looking weird...

                  ten7kurT 1 Reply Last reply Reply Quote 0
                  • ten7kurT
                    ten7kur @ustk
                    last edited by

                    @ustk said in Populate samplemaps based on folder choice(almost working):

                    @ten7kur Have a look at the watchtable, the samplemaps names and start/end are looking weird...

                    Yea oops messed up along the way somewhere.
                    This works, but still only populates on INIT.

                    Im trying to send the SMLdir_select from onCATControl back through the script to show the new formatedSamplemaps.

                    global SamplemapList = Content.getComponent("SamplemapList");
                    
                    const var Sampler = Synth.getSampler("Sampler");
                    const var sampleMapList = Sampler.getSampleMapList();
                    
                    global SMLdir_select = "Folder1/Sub-folderA";;
                    global formattedSamplemaps = [];
                    
                    global SMLdir_start = sampleMapList.indexOf(SMLdir_select + "/0");
                    global SMLdir_end = sampleMapList.indexOf(SMLdir_select + "/zzz");
                    
                    
                        for (i = SMLdir_start+1; i < SMLdir_end; i++){
                        var newName = sampleMapList[i];
                        newName = newName.substring(10, 100);
                        formattedSamplemaps.push(newName);
                    }
                    SamplemapList.set("items", formattedSamplemaps.join("\n"));
                    

                    Would this solely have to be inside the onCATControl?


                    I did this before. It works half way. It populates Samplemaplist based on CAT Item selected but its not clearing the SamplemapList viewport. So everytime i select a CAT Item it just adds and adds to the SampemapList.

                    inline function onCATControl(component, value)
                    {
                        var items = component.get("items").split("\n");
                    	
                    	if(items[value] == "A"){
                    	    SMLdir_select = "Folder1/Sub-folderA";
                    	    
                    	    global SMLdir_start = sampleMapList.indexOf(SMLdir_select + "/0");
                                global SMLdir_end = sampleMapList.indexOf(SMLdir_select + "/zzz");
                    
                        
                        for (i = SMLdir_start+1; i < SMLdir_end; i++){
                        global newName = sampleMapList[i];
                        newName = newName.substring(10, 100);
                        formattedSamplemaps.push(newName);
                    }
                        }
                        else
                        if(items[value] == "B"){
                    	    SMLdir_select = "Folder1/Sub-folderB";
                    	    
                    	    global SMLdir_start = sampleMapList.indexOf(SMLdir_select + "/0");
                                global SMLdir_end = sampleMapList.indexOf(SMLdir_select + "/zzz");
                    
                        
                        for (i = SMLdir_start+1; i < SMLdir_end; i++){
                        global newName = sampleMapList[i];
                        newName = newName.substring(10, 100);
                        formattedSamplemaps.push(newName);
                    }
                        }
                        //else
                                
                    	//SamplemapList.set("items", "");	    
                    	SamplemapList.set("items", formattedSamplemaps.join("\n"));
                          
                    };
                    Content.getComponent("CAT").setControlCallback(onCATControl);
                    
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • ten7kurT
                      ten7kur
                      last edited by

                      bump.
                      Anyone?

                      At least the simplest of question;
                      Why wont a viewport clear its items with:

                      Viewport.set("items", "");
                      

                      ??
                      Thanks

                      d.healeyD C 2 Replies Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @ten7kur
                        last edited by

                        @ten7kur said in Populate samplemaps based on folder choice(almost working):

                        bump.
                        Anyone?

                        At least the simplest of question;
                        Why wont a viewport clear its items with:

                        Viewport.set("items", "");
                        

                        ??
                        Thanks

                        I think it's a bug. i just did a simple test and you're right, it doesn't work.

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

                        ustkU ten7kurT 2 Replies Last reply Reply Quote 0
                        • C
                          coreyu21 @ten7kur
                          last edited by

                          @ten7kur possibly try to insert viewport.changed somewhere in the code to tell the component to initiate the callback and update item list. I believe I had the viewport updating not to long ago, just not in an if statement. Might not work, just trying to help🙂

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

                            @d-healey Apparently, you need to have at least something as a workaround,
                            like Viewport.set("items", "-"); or Viewport.set("items", "Select a category");

                            I think .isNotEmpty() is the cause:

                            void ScriptingApi::Content::ScriptedViewport::setScriptObjectPropertyWithChangeMessage(const Identifier &id, var newValue, NotificationType notifyEditor /* = sendNotification */)
                            {
                            	if (id == getIdFor(Items))
                            	{
                            		jassert(isCorrectlyInitialised(Items));
                            
                            		if (newValue.toString().isNotEmpty())
                            		{
                            			currentItems = StringArray::fromLines(newValue.toString());
                            		}
                            	}
                            
                            	ScriptComponent::setScriptObjectPropertyWithChangeMessage(id, newValue, notifyEditor);
                            }
                            

                            I'll try to remove it...

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

                              @coreyu21 said in Populate samplemaps based on folder choice(almost working):

                              possibly try to insert viewport.changed somewhere in the code to tell the component to initiate the callback and update item list

                              Tried it but no luck..
                              I looked in the API, found "changed()" but it seems like it exists for all components Besides the Viewport..

                              @ustk said in Populate samplemaps based on folder choice(almost working):

                              I'll try to remove it...

                              🙏 🙏

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

                                It works by commenting out the .isNotEmpty() condition
                                @d-healey I'll make a pull request to your fork in a moment if you want this fix of course...
                                The fact is that I don't know if it can involve a wrong behavior somewhere else in Hise, so, be warned if you use it!

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

                                  @d-healey What branch should I use in your fork? The develop seems more recent than the scriptnode one...

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

                                    @ustk yeah the develop one

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

                                    1 Reply Last reply Reply Quote 1
                                    • ten7kurT
                                      ten7kur
                                      last edited by ten7kur

                                      ☺
                                      @ustk You're a beast! for goin nitty gritty!
                                      Wish i could be more code efficient!..not yet!

                                      ustkU 1 Reply Last reply Reply Quote 1
                                      • ustkU
                                        ustk @ten7kur
                                        last edited by

                                        @ten7kur It's pushed on Dave's repo, you can compile it and test ;)
                                        https://github.com/davidhealey/HISE/tree/develop

                                        ten7kurT 1 Reply Last reply Reply Quote 1
                                        • ten7kurT
                                          ten7kur @ustk
                                          last edited by

                                          @ustk said in Populate samplemaps based on folder choice(almost working):

                                          @ten7kur It's pushed on Dave's repo, you can compile it and test ;)
                                          https://github.com/davidhealey/HISE/tree/develop

                                          Awesome stuff! Just compiled and tested it!
                                          Thanks so much for taking your time to fix this!!👑

                                          Hopefully now i can finish my script

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

                                          21

                                          Online

                                          1.7k

                                          Users

                                          11.8k

                                          Topics

                                          102.5k

                                          Posts