HISE Logo Forum
    • Categories
    • Register
    • Login

    load next, previous, random sample from folder of currently loaded sample

    Scheduled Pinned Locked Moved Scripting
    loadsamplelooperloop player
    5 Posts 2 Posters 487 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.
    • M
      mwplugs
      last edited by

      so i think im finally ready to finish this project ive been working on but i want to add the ability to click next, previous and random sample from the currently loaded sample folder.

      i figured out how to do it through a little customization of a snippet in the forum but that was only to load a static file from a static location simply using numbers..

      its like the redrum module in reason, when a kit is loaded any of the slots your can click next or previous to go thru say the different cymbals, hats etc. it would cycle thru whatever was in the current folder that the previous sample was loaded from. i know it would have something to do with arrays etc but its beyond my scope of hise to write something like that honestly.

      so how would i do that for multiple loop players say 2 to start

      thanks im almost done finally! lol

      Matt_SFM 1 Reply Last reply Reply Quote 0
      • Matt_SFM
        Matt_SF @mwplugs
        last edited by Matt_SF

        @mwplugs
        This is how you load samples into the loop player using variables :

        const var AudioLoopPlayer0 = Synth.getAudioSampleProcessor("Audio Loop Player0");
        const var AudioLoopPlayer1 = Synth.getAudioSampleProcessor("Audio Loop Player1");
        
        // Declare 3 samples
        const s0 = "{PROJECT_FOLDER}sample0.wav";
        const s1 = "{PROJECT_FOLDER}sample1.wav";
        const s2 = "{PROJECT_FOLDER}sample2.wav";
        
        // And load some into the loop players
        AudioLoopPlayer0.setFile(s2);
        AudioLoopPlayer1.setFile(s1);
        

        This is how you do the same with an array of sample :

        // Declare an array of samples
        const grpS = ["{PROJECT_FOLDER}sample0.wav", "{PROJECT_FOLDER}sample1.wav", "{PROJECT_FOLDER}sample2.wav"];
        
        // Load the same samples into the loop players using the array indexes :
        AudioLoopPlayer1.setFile(grpS[2]);
        AudioLoopPlayer2.setFile(grpS[1]);
        

        Then loading a random sample from an array is simple, just use Math.randInt(var low, var high) to grab a random integer and use this number as an array index.

        For what you want to do, you have to group your different samples into categories (arrays). Each of your loop players will load samples from their own category. Then write a function to load random samples into each loop players when a button is pressed.

        Array manipulation is one of the scripting basics, you should definetely learn how to use them.
        Check @d-healey 's video on his youtube channel https://www.youtube.com/watch?v=Y8sraa5ig-M and subscribe to his patreon page. He made some tutorials on the subject and his videos in general will definetely help you.

        Develop branch
        Win10 & VS17 / Ventura & Xcode 14. 3

        M 1 Reply Last reply Reply Quote 1
        • M
          mwplugs @Matt_SF
          last edited by

          @Matt_SF well i figured it out for the most part created somewhat of a custom solution but it works good

          so what i need to know now is...

          how to send the file folder location of the currently loaded sample to a variable and have it used in the setfile command

          and secondly how would make a button randomly select an item in a combo box

          Matt_SFM 1 Reply Last reply Reply Quote 0
          • Matt_SFM
            Matt_SF @mwplugs
            last edited by Matt_SF

            @mwplugs

            and secondly how would make a button randomly select an item in a combo box

            const var ComboBox1 = Content.getComponent("ComboBox1");
            const numItems = 4 ; 
            
            inline function onButton1Control(component, value)
            {
            	if(!value)
            		return;
            	
            	local rand = Math.randInt(1, numItems + 1);
            	ComboBox1.setValue(rand);
            	ComboBox1.changed();
            };
            
            Content.getComponent("Button1").setControlCallback(onButton1Control);
            

            To load files into an array, do the same you've done for your Irs

            Develop branch
            Win10 & VS17 / Ventura & Xcode 14. 3

            1 Reply Last reply Reply Quote 0
            • Matt_SFM
              Matt_SF
              last edited by

              Adding snippet

              HiseSnippet 897.3ocsV01SaCCD1osAsD1Pfz9AjwmBZLTCvXSBMMVKvT0FP0JCs8IjwwkZgicjiCipI9Ou+AamSRaRYADqRKenp2KOWdty2cN8URBMIQpPVNmNNlhrdp8fwB8ntivLAp29HqkrOBmnoJubUcFGiSRngHKqleznvxoEJ64WuuCliEDZoJD5LIiP+LKhoK01euOw37CwgzSYQU7d685QjhtRtLE3SS61nXL4J7kziwF2ZXirV3fPlVpFnwZZBxpUGY33Aij+Pj6+YrD1EbpQH.M.BTt5Ck7PCiM+G0cDiG1eRdmffnzurJzLuJ7b6iXgro5KqFKmYvqDQ05gUiYoWyYnWv8QuZnjUEJ0JmRqXOfnXw5RKF9rncOAb3LDCk8pTI2WTiEZX2UBdHzaDguhdnBDlhvem1sW2C9YscccgReh16ZLbPKitP1QdSf267l.9RpFTGKEff+pS8XU.YNPQZTOMMJAvrs2tdttLAmIndCSEDMSJ7jhNoZsTDXBoRx8ISh25vakmRWy8mtNrg9unPxwQQ0oJwttNtNbIAy8TXQH7BNBqGsg4+Pl3Grd469kdA.gblRuMRn5yLQy238rlHivhKog9f1agzu9DsfxqtlIREDuKlyu.ZL8uaFs1tUR1ikZ5IB+rjx8VWu6ZZ3vZsUDJNUUqYy.i5g.5C0hKnppkTiiPWzrslK73ZMI4UkJNJE8DL8IwzB4xYqfZZjQEkUnktQACAW0YMzKUzPmWDQLHHN1EUTTF8qtHAcW3KW.exIZV.Vzd5A7jPXa0z.+q81GqwlQqBJAzLlpzLS0vZe50vdp7AMG68oIWokwYbtnU.hyif02Tx3uu23pBrjijQPbvJPsUCTk.uviLeJC9dwyF7H7Ml7zHyLyAFJE3to6VtaCaa+qMIvNLYXJGqmcwlYadgAnkZlsIlMFhDldb0s82caWq6ukpcsKiqsg4QR2Ur6yzjQ0y2F0vWSG3+Y9Vb2wyrOX3PJQWR1V1G9sG7hh+YpT2kFnuHS0Lwkv1QEyzPbbZz.3pTBEXhPP4IlljFlQob41FYSkY.UDlI7a3ovXfQ1pvXvDinHLQIOmjOKZto5IYZ.NIxtj1A9ZAP1qb7yt8FsQQvklmSHlRwqfxX8X1bNvr0bfY64.yqmCL6LGXdybf4sOHFy2q7gTsLJeLATz+frUgVVGHvPWVVGI5O.dTc6z
              

              Develop branch
              Win10 & VS17 / Ventura & Xcode 14. 3

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

              52

              Online

              1.7k

              Users

              11.7k

              Topics

              101.8k

              Posts