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 ten7kur

      Do i need some sleep?
      Im sure its something stupid

      Would really appreciate if someone could pitchIn

      HiseSnippet 2752.3oc6Zs0aaiiEVJopSs25YmYv7v9xBPXLOXijFeoMYtjcvl3jzIEaRaPbZmAHaPfrLsMSkEEjnRpaQ.leR6Og4mz979xtGRQJQIeIttIEc1ccaQMIO7b93gGd34SxGEPcvggz.CyBmLxGaX9Pq1i7XC1YfMwy3Y6ZXVzpS.8pPbvFFsF4aGFh6ZXZt7OwG2rv8LDe9m+0V1t1dN3ztLLdEk3fOfLjvR68ns9aDW2mZ2EeBYnlzOYqm4P81g5Ri.rrrUcCeamWa2G+batXKYYXd+85RXzf1LaFNzv7dsncG0d.8JuX4eEIjzwEyazvnMnn3teJ0sKGw7dM1Y.ws6Qp0bnggo0Qodfki8.es0gjtjj9S8DegX.T5Lz8GlKMK30PGd0me3YpAu6ECuuzpsS.wmkNBGa+Aqm4wvA8rgs.cXEKqwR+q6asCEjvis1P6WieZ.zHYFU1nd8UQqWud0MKUrTwZ0P+33ePmhZaOz2EOz1+.RHCc1DjBUqVohvFIL7k1A4lvOhTPnOlsCcnO0CZTobFoJywPdMD.yUDVxmorK07BxMiPQuGlXSoToyTNTE0h0m5G4x2zPrAXztj.rCrONB4ayFTpXeWZGaWT6COnKI37PrKLpbhp9X1ArUURf85h7oDOFhQEJrqRgBGas5HRrg5QB.70i3hQDOjcpbqhrAcT6su8sJQcskRNFb3lFViYVyqQ75heyK5UIClQqfJWqtvWkUGb.O+Z.PU4XGmTK8nACsYLb2jcwPPcmdlPFD7AD.Ugv2Hzv7JM1DQP+EML.sWYkpuKdN78QO7U7y94w1oDtp4BkJf7aqEF0IjEP75WoADO2HNdVhg7fbM+nvAUjyjK20b.Oif+cfPj973hoF2qGEty1mL03cXLoOrTQhmKwCBFh7bXDpGBxAt8I7oEPcq3nlypfNcivUKUT5fboNfumvvC4d6D43FpRYQ2kqtVnuKAZ928DVq.72Z0BwLN1Zh5XCYH.ywa0.FhzqhXdmJrDeMhJuc4puq.2bv37+KyA00BSs0pnxkU9ZgfYha.MIRyEznV6nNOpm36aWdyaVqSZe6B3vU7hppRCf+Jj5hWyG16YYWFqT9QnxqjAOU2TfyqEvMFySZw2BV7p0i1J6VzEz51wEnr3h5EtFzwLBT4vQFPtisqaG3Z4J5QopHYsP3mSY3W3UoZw2UrPwqKhxOTudSbLoB441mzv7BFBl0Dq3EMrCNPcXQIHbyY1qlsl9Uy5UN3D6SzDj58LOB6E9XuocgsgzQBWcujDUfnLwE2ek7hab2WQvW4SCXFD3NZKKvWZHfLzvzzPpk4Xp+QqLANJknpo5AaY7xmsqMyliFsBIJN0J8Zc7K9416c7i0Jgf6Ihq06gVMVqt7iQR4dOzpdZu5U7UxZimjNR1p9JY0TaV2Tkesh.u7qvAgvtM2esw50g+6NqVNNDLMu0qEST2mrZru4g2lUigtqKGS.hsccoWIJG4RYLHuBGWtl3cJx2Tp3DxjEEhEZZUDKHBGquOpE3gNRVgWbcWpDpwXWT6ETF.xNHvdjtclYkMB8dLdH8RLJtlCTu.5vTvg7fvWc04LvNH7DpbNfhJ2Z2yOHp6Uj9kWk+8eYzaguzVqy1pN2eewWlPQU0iqiJa4atXu9rAwUTkd+v6R+5bUeklktH1RW.VJyxHwRWLMKMdQZAXeWdTdFEc5Emk+BzqS+57T9VtoI1edoeW0ttJlchQny+csB0d.0tapSaR0vkwF2b0bpHXWPwIgvUxtsDeSd0MKLqKryczcxWcOIvotDW8mDW3Mk5QVULAXO89l.5bdkmyWVHgnSjYnl.Mmec07CJsl.MSK2131Z5YAS7x9QLTDv4BxRHYYnuR4YRBWzLFHkgfsBXEALJuBtJFM.p.Ur.iixhMAbAFOuXmQZvHIeAsCOKv6tNA47iKU73IPEyV67udB.tYOgaVAajX9rxDlPYpTH4qvWGEx6gOXexkXOTH12NvFJZSSShj+97TIJpMmWN0QlHR2fgmqvOO6l+o0OayIHS7JWkCz+zFmkUW.v+YL3I7fbdXmWCjDD3KQ0vZx1M.a2cDfdbWsYxoSDtKtGjUnaEvucpNjNqptmh+YLIhStkEiU2jCHaeeNec4iV.+Fv0w8abWnlRwtg3axF73orV3LgEbfUDjyL9NQwVic7IgWiGooSHMagBnYmqcFmaTYbystylrcZGkxLYM7OVt5w+C.zcChFh3kusIp0tqhZC+a+8WEgYN2XlbwB3lSmO2Ynko0lizz5Vt5lYWKg.gx30inuV69Cn37AqhfT.qphkamseU26u+OnDCbAaNW9fl2rOnVsaZ2KzOy906oaq4b61Zp41l.GUAhKHd7OSjm5TFWmq5TDQxWc1JHGmUcgAJCyheoYdRhkjjQNvtC1UvO7yr5QgqUT7BApTJBgllsA5Vb9aeQBoOEWwwo4.jknc4UPmkAEmVnb.NyrrTc3zY7BIrQ4HNNAlUyqE+RqiHLmASwjMxZx5ysIkTEKYsWudXGVp8tm0S+kalWntp9ymnnqyfznCgTyxR6D5qfkp0s.85O2p45arX7qOJ.Kpzj7VL+YH7cM99lZVNB7BApwdR8ueib1e6gPL03.PtzNF6C2e.aQBr+3zwO93eJfF4qlclUqXa8j.3.L3wxM1K7vsGPY47D6DPCC6AqWgRCyM5QQA84N2LcdL9RbP3Xc+7ngvNtmGbmYbTzKCw7GTDw4PanLk2jSbg8pehs34EAGnDsajqcybsebt1OIW60y0dibs+1z1IzC3ATekURSjC0eDZiIkyv792oOWjO94Kx7jXJnLYaB2Urm2kPvMzSr+AJByNxko5sQNidH0i5Of5QbFKXA1662GNplEMSCkayXPzKuy00UhK1NTbbrgltO.td0NPcD48XoNKu6exJFBHdB.zmNYkq+IPV4Yg9OWdDB0l+Zot68VOzRbhFwyU+AXsioQ7B+UonrfrXwWnqmKqogrUc4SeDnNTm6.eTC0HMjOzaXjFxQLbTp.rr76w0LrLPSDxCIus0Exm5laOMDt7fiGdkF2kPbnsS.8bm3Bf3.8Ahd.I8DOz3BVGxaiZj7b04nzXHjZ6bGmLZYr4zbAlyiWf47jEXNqu.yYiEXNe6BLmualygeqx1QL5v3TDPGGsmrRz8RippmTfKDs6iCXD96qwbW7kPgGwmpJ.4zCeMi5KdCKRBBP2yw6X4MouZjC1ZTRie8zsthzkMHoieqyVCvj9CR+Yq7q1aIe9MpWQCiRcYDekpEjZ3M1tXK9ZHAWO385E3ngvKt0P384Hr4sw8zlKqkiJ8m9ycxO8kaiqeLWZB3k+xvtiw67d20czuZnOLFIK7OsK+49m1UFBHJw9sszodn58erUFRGo1ZB7MReum4HajtTxwzHcfDZFoqww3XjNjhfQZOorKR6KC0h3CkiQtHU5OoXVTxp0t0Zs64uHhUq9Xu.8Oa9dA5ftNxFV8ZR1hzOwNw8nGJm3wEnR621mwcFolOBGAuaS1t77AWi6HVTlKqygR+7PBApTrOwEjh5jpmudqDdSpt9lsz4LsP9hFyuu3Cjl0u6tjb4+m+RxEhf3mh6ySgc4GUnNG79rLWhe+ZByOKwO5II2OKy+M7Ik7W7EmR5ewCNOTTMWRRPMMj98jc5GLJ++rT+uQVplKa7e.YMvthB
      
      1 Reply Last reply Reply Quote 0
      • ten7kurT
        ten7kur
        last edited by ten7kur

        Perhaps my question is....

        1. Why samplemaps(Array) wont populate on click. Only populates on INIT

        2. Why wont "SamplemapList.set("items", ""); is not emptying a viewport.

        THanks!
        @d-healey @Christoph-Hart @Lindon @-anyone?

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

          @ten7kur

          Q1: becuase your code doesnt have a click event that is asking to do this

          look at these two line sand see if you cna work out where you are going wrong:

          const var SamplemapList = Content.getComponent("SamplemapList");

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

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

            just loking at this now.. Thanks for the response!!
            I dont quite understand what you mean to look at "SamplemapList"
            Could you elaborate more?
            I tried:

            CAT.setMouseCallback(function(event)
                {
                	if(event.clicked){    
                	
                for (i = SMLdir_start+1; i < SMLdir_end; i++){
                var newName = sampleMapList[i];
                newName = newName.substring(10, 100);
                formattedSamplemaps.push(newName);
            }
             Console.print("excuted"); 
                	} ;
            

            I cant compile...

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

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • 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. :-)

                  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)

                      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
                                            • First post
                                              Last post

                                            21

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.5k

                                            Posts