Forum
    • Categories
    • Register
    • Login

    Get Sample Filename from Sampler using custom Sample Maps.

    Scheduled Pinned Locked Moved General Questions
    samplerfilenameattribute
    72 Posts 4 Posters 10.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.
    • David HealeyD
      David Healey @trillbilly
      last edited by

      @trillbilly

      Show me your code

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

      trillbillyT 1 Reply Last reply Reply Quote 0
      • trillbillyT
        trillbilly @David Healey
        last edited by

        @d-healey if I put it within the loadSample callback in the SampleLoadSave.js, it compiles but still not change of the label.

        At this moment I have it like this in order for it to compile (changed s to sn):

        inline function loadSample(file)
        {
        	local s = [Sampler1.parseSampleFile(file)];
        	
        	s[0]['LoKey'] = 60;
        	s[0]['HiKey'] = 60;
        	s[0]['Root'] = 60;
        
        	Sampler1.loadSampleMapFromJSON(s);
        	
        	const sn = Sampler1.createSelection(".*")[0];
        	SampleName1.set("text", sn.get(Sampler1.Filename));
        
        }
        
        David HealeyD 1 Reply Last reply Reply Quote 0
        • David HealeyD
          David Healey @trillbilly
          last edited by

          @trillbilly You need to wait until the sample is loaded. Use the loading callback. https://docs.hise.audio/scripting/scripting-api/scriptpanel/index.html#setloadingcallback

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

          trillbillyT 1 Reply Last reply Reply Quote 0
          • trillbillyT
            trillbilly @David Healey
            last edited by

            @d-healey Holy Moly. Ok, am I even close with this?

            samplepanel.setLoadingCallback(function(isPreloading)
            {
            	if(isPreloading)
            	{
            		const sn = Sampler1.createSelection(".*")[0];
            		SampleName1.set("text", sn.get(Sampler1.Filename));
            	}
               
            });
            
            David HealeyD 1 Reply Last reply Reply Quote 0
            • David HealeyD
              David Healey @trillbilly
              last edited by David Healey

              @trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:

              am I even close with this?

              Yes, but you want it to do the thing when it's not preloading.

              if(isPreloading) becomes if(!isPreloading)

              By the way, if you're using the audio waveform component that has a built in label that shows the sample name - assuming only one sample in the sample map.

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

              trillbillyT 1 Reply Last reply Reply Quote 0
              • trillbillyT
                trillbilly @David Healey
                last edited by trillbilly

                @d-healey Samplemaps within the plugin itself have multiple samples (RRs) but the custom loaded samples are only one sample.

                I have this within the SampleLoadSave.js file just below the SampleDropper loading callback. It compiles but does not change label.

                const var samplepanel = Content.addPanel("SamplePanel", 0, 0);
                
                // This function will be executed whenever the preload state changes
                samplepanel.setLoadingCallback(function(isPreloading)
                {
                	if(!isPreloading)
                	{
                		const sn = Sampler1.createSelection(".*")[0];
                		SampleName1.set("text", sn.get(Sampler1.Filename));
                	}
                   
                });
                

                Im using a button to load instead of the sample dropper. Would this have anything to do with it?

                EDIT: Sorry, I missed this, I see it is getting the same console error of "API call with undefined parameter 0" while within this LoadingCallback.

                David HealeyD 1 Reply Last reply Reply Quote 0
                • David HealeyD
                  David Healey @trillbilly
                  last edited by

                  @trillbilly which line? Also you probably should use var rather than const here

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

                  trillbillyT 1 Reply Last reply Reply Quote 0
                  • trillbillyT
                    trillbilly @David Healey
                    last edited by trillbilly

                    @d-healey Ok, I changed with VAR and it seems to have cleared the API issue. Now, it sets every name, including saved sample maps, as "0".

                    //SAMPLE NAME LOADING CALLBACK
                    const var samplepanel = Content.addPanel("SamplePanel", 0, 0);
                    
                    samplepanel.setLoadingCallback(function(isPreloading)
                    {
                    	if(!isPreloading)
                    	{
                    		var sn = Sampler1.createSelection(".*")[0];
                    		SampleName1.set("text", sn.get(Sampler1.Filename));
                    	}
                       
                    });
                    

                    It will initially set the saved samplemap name but immediately change to "0". Custom Samples dont seem to set then change at all so I think its still not reading the custom sample name at all.

                    If I remove [0] from the var sn = Sampler1.createSelection(".*")[0]; script. It displays the saved samplemap names but still does not display the custom samples name.

                    David HealeyD 1 Reply Last reply Reply Quote 0
                    • David HealeyD
                      David Healey @trillbilly
                      last edited by

                      @trillbilly Sampler1.Filename should be Sampler.FileName

                      Here's a working example, just drop a sample into the sampler and you'll see the name in the label

                      HiseSnippet 1303.3ocyX0sSabDEdVLKE6lD0DkK5E8hsV8B6JpwFHjphZiwFHBULXgIQUppxZX2w1iX2YVMyrN3VwaQeP5iPejxaP6Ylcs8tFKhwMIMnnn872LeybNmuy.sEbWhTxEHq7WLJjfrdfcmQL0flCvTF53CPVOxtEVpHBmXUMFEhkRhGxxJ2K0JrxuJx7yaeQCrOl4RlpBgdMm5RNgFPUS01t9OS88OB6QtfFjx6cperKm0j6yi.7jytJJD6dEtO4Tr1sUrQVqcnGUwEcTXEQB9zf6Mpy.9aXw9+ZpjdoOQKTC0AVnX0nlCn9dsGeVkHjkc6om7bwm7mZ2h5Qmne5MvWXL3LMhz2AVqbWPp18.RVofzpwP5w1cbEzP0TKZ7741GyfDROLbUmFJw9hV46VwtIG7fopDfuhbj.DlDQocqVcCG3+JuWgBv0sT4LDKb5fCB8IhZN+niI+WoOQknqTwwFKlMlSvWR70QLd2fXZxCB4LPnTwXyyDSaL6thI1rIl3OqHIpS3XOJqeSru+kPAQodQLWEkyJQksED+XqkK7GExS64T5qypMOnNudmk5iVxAohqf.oqNDeR7JUrx2Vr7uV821CbF9mdcnxCH8nLhWIYYXYLqS93yjFTkJpHWqJtgiTeDJMYkOh5apWKWVuV2nWtaJbS48FCZGN6TthbFqjAwEtofyrl50at1z2XBtuNiLOy5dIwcEXIVTvkDwFPdvOhLwQnXKaE7ZKVErabBLkib1wLp5rPRh7QbeOcko96aWuiRp.fud0wGfUXcKPhNvuPhPQ0vw5.xPfCItgHu8AD4UJdHPGLorA5lUFqOLocwjkPTXqW2NNigtdJMyA0GMU3mpqSiHqF1aNfGP1zCOjrIbMn1reDUgEPuSWFWDf86t81c8FwvAT2ZcEhs555ykjt9bAUV4M3g5CzD.sZV.YpkS.TbcsFP1V+fEBMR+weZ3EuU+Ov7v8h7wprzQZd2DCPFNCGftOmIopQo4kuGbTUuSNpEEhO1tMU4NX9Xbk4fQH2+g.iIL6Oz9vd8fN8o.bU6i9kkkFew29uJd6ehcGEv2D.7QIzDFLTvdLow6igpgK7P0D1wNzeOka+c8FQvcjHq1+ptYq1OfGwxrWIH+bRHviBo4Twrd8yO+kBdT3rQ81WXJJtP.b3vUQZCmwHvcsJ8YrofKk8fiiYsjoM0NRzWeWMUy4jgDgLqtSiBf7MCZ1j5NLKMOijnyuT2VXkfdcZuM6R0KvlbL7RCibsYj2ZF4smQdmYje1Lx6Ni7ymJaYms96yVLR3V3PCeRJOaPSpx.awZxRWjx0I2wFbj5cTy40Iq8g5ASqtXcZuigIe5ycl48c4GiwNTcp5P1PnmDznw3SfYb8vQ9pwZyxOzhy3gC3Lpa1N.nhteehHM1m6AZekBZ.mp4o0OGdFDVlpE9apeB7vGrHai885t39+V24lu9R6X35nI0b9uj29nVlcmy+xsPy+dui2keV3G0qtGkLUzA1cg5S777CrM73N5wt+eA0y4QJXb53QZ1vbuNvrdWR5oeqnmnFKWUKqATGByyH7OvOIFqMdTo1XswFQtiWJ3rk7s4E6V4HL8nCyy57ggv9oKokvKJzPBFugjljZ.LR5iChCvtBdW23eyGMtW2nAPLy7GSHucKsrSMj42FJMrCfYWcccytT2JvsV1.2dYCbmkMvmsrAt6xF3yW1.+92cf5mVrejhGDSrhPsZeXbwn0gSJFyg9W.bilFGA
                      

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

                      trillbillyT 1 Reply Last reply Reply Quote 1
                      • trillbillyT
                        trillbilly @David Healey
                        last edited by

                        @d-healey Great. This did work. Thank you!

                        Now I have another issue.

                        It is replacing the saved samplemap names with the sample file name instead.

                        This isnt a huge issue except for

                        1. it shows the entire file path
                        2. It doesnt change the name of the sample being played within the saved sample map (RRs)

                        Can I have it display both saved samplemaps + custom import samples?

                        David HealeyD 1 Reply Last reply Reply Quote 0
                        • David HealeyD
                          David Healey @trillbilly
                          last edited by

                          @trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:

                          it shows the entire file path

                          Use the various string functions to get what you want from the full path.

                          @trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:

                          It doesnt change the name of the sample being played within the saved sample map (RRs)

                          I don't think you asked for that :)

                          @trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:

                          Can I have it display both saved samplemaps + custom import samples?

                          It can only ever display one thing, what do you want it to show when a factory sample map is loaded?

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

                          trillbillyT 1 Reply Last reply Reply Quote 0
                          • trillbillyT
                            trillbilly @David Healey
                            last edited by

                            @d-healey you're right, I didnt ask for each sample loaded from an internal samplmemap. I'd rather it show the internal sample map name and then the custom sample name.

                            So internal samplemap is loaded, you see the samplemap name.

                            Custom sample loaded, you see the sample name.

                            David HealeyD 1 Reply Last reply Reply Quote 0
                            • David HealeyD
                              David Healey @trillbilly
                              last edited by

                              @trillbilly said in Get Sample Filename from Sampler using custom Sample Maps.:

                              So internal samplemap is loaded, you see the samplemap name.

                              Ok so how are you selecting the sample map to load?

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

                              trillbillyT 1 Reply Last reply Reply Quote 0
                              • trillbillyT
                                trillbilly @David Healey
                                last edited by

                                @d-healey like this

                                const var list = Sampler.getSampleMapList();
                                
                                inline function onSampleViewer1Control(component, value)//viewport
                                {
                                	Sampler1.loadSampleMap(list[value]);
                                	SampleName1.setValue(list[value]);//label
                                	
                                };
                                
                                David HealeyD 1 Reply Last reply Reply Quote 0
                                • David HealeyD
                                  David Healey @trillbilly
                                  last edited by

                                  @trillbilly Oh yeah I remember you posted that before. So you're already setting the label to the sample map name. What's missing?

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

                                  trillbillyT 1 Reply Last reply Reply Quote 0
                                  • trillbillyT
                                    trillbilly @David Healey
                                    last edited by

                                    @d-healey I'm not sure because it's changing it from the internal samplemap name to the only the loaded sample name/location.

                                    It displays the samplename quickly at first, then changes to the folder name/location.

                                    I assume I need to add this to the loader callback we made for the sample name?

                                    Sorry, I'm on mobile now so I seem a bit choppy.

                                    David HealeyD 1 Reply Last reply Reply Quote 0
                                    • David HealeyD
                                      David Healey @trillbilly
                                      last edited by

                                      @trillbilly Oh I see. You can just put a reg variable at the top of your script called currentSampleMapName and when you load the sample map you set the variable to its name, and when you are importing a sample you set the name to "custom". Then in the loading callback you can check the variable and if it's not custom you can just exit the function.

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

                                      trillbillyT 2 Replies Last reply Reply Quote 0
                                      • trillbillyT
                                        trillbilly @David Healey
                                        last edited by

                                        @d-healey OK thanks. I'll try this when I'm back in studio tomorrow. I'm sure I will f*ck something up and be back.

                                        Thanks again, David.

                                        trillbillyT 1 Reply Last reply Reply Quote 0
                                        • trillbillyT
                                          trillbilly @trillbilly
                                          last edited by

                                          This post is deleted!
                                          1 Reply Last reply Reply Quote 0
                                          • trillbillyT
                                            trillbilly @David Healey
                                            last edited by

                                            @d-healey Hi David, I've got it to work like this:

                                            //SAMPLE NAME LOADING CALLBACK
                                            const var samplepanel = Content.addPanel("SamplePanel", 0, 0);
                                            
                                            samplepanel.setLoadingCallback(function(isPreloading)
                                            {
                                            	if (!isPreloading)
                                            	{
                                            	     var s = Sampler1.createSelection(".*")[0];
                                            	}
                                            	
                                            	if (isDefined(list))
                                            	{
                                            	     SampleViewer1.set("items", list.join("\n"));	
                                            	}
                                            	
                                            	if (isCustomMap)
                                            	{
                                            	     SampleName1.set("text", s.get(Sampler1.FileName));	
                                            	}
                                            
                                            });
                                            

                                            Does this look solid?

                                            If so, I am on to trying to decipher the issue of showing only the filename rather than the file location for custom loaded samples.

                                            Thanks again.

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

                                            20

                                            Online

                                            2.1k

                                            Users

                                            13.1k

                                            Topics

                                            113.3k

                                            Posts