HISE Logo Forum
    • Categories
    • Register
    • Login

    Sample Import Root Note

    Scheduled Pinned Locked Moved General Questions
    3 Posts 3 Posters 233 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.
    • K
      kameron
      last edited by kameron

      I am trying to create a way where users can manually set the root note of an imported sampled. I am using the custom import sample demo project but am looking to add in this function.

      The idea would be to have a combo box or knob with note values and when one is selected it changes the root note of the imported sample.

      I can't seem to figure out how to do this. Is this possible? Can anyone direct me on how to do this?

      bendursoB HISEnbergH 2 Replies Last reply Reply Quote 0
      • bendursoB
        bendurso @kameron
        last edited by

        @kameron Do you mean with the Audio Loop Player? There's a parameter called RootNote to do that.

        Screenshot 2024-09-06 at 9.28.16 AM.png

        1 Reply Last reply Reply Quote 0
        • HISEnbergH
          HISEnberg @kameron
          last edited by HISEnberg

          @kameron I haven't used this feature before so I can't attest to how it holds up for saving in presets and what it does to the original samplemap file, but my understanding is you need to use the Regex system

          Here is a small snippet on how you would load it via a combobox but it would work the same with a knob:

          const var Sampler1 = Synth.getSampler("Sampler1");
          const var RootNoteComboBox = Content.addComboBox("RootNoteComboBox", 10, 10);
          const var notes = [];
          
          // Array of note names for a single octave
          const var noteNames = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
          
          //Populate Combobox
          for (i = -2; i <= 8; i++)
          {
              for (n = 0; n < noteNames.length; n++)
              {
                  notes.push(noteNames[n] + "::"+ i); 
              }
          }
          
          RootNoteComboBox.set("items", notes.join("\n"));
          
          //Set the root note
          inline function onRootNoteComboBoxControl(component, value)
          {
          	local comboValue = RootNoteComboBox.getValue();
          
          	for (s in Sampler1.createSelection("."))
          	{
          		local R = (s.get(Sampler.Root));
          		s.set(Sampler.Root, comboValue);
          	}
             Sampler1.setAttribute(Sampler.Root, comboValue);
          };
          
          Content.getComponent("RootNoteComboBox").setControlCallback(onRootNoteComboBoxControl);
          
          
          HiseSnippet 1819.3oc0X1saaaCEGWJIZs1qcnsnWraF.g6tvAIMUJ9Sjzh5DmOPvZRMhSKFPWQghLcLWkIMjnxR1PtaOP6QXOL6AnuAamygxwxNtYoYscaFnLhjG9i+4gebHaqHU.ONVEYYm6fSGvsrukS6Sk5dM64KjV6rgkcdm8UJ8dJM2Z8SG3GGy6XYaO61X814lyh98tmttenuLfOpHKqWpDA7mI5KziJsUiuSDFtkeG9Ah9YrtbicBTxlpPUBnkYcbsF3G7V+i364ilMiik8WrYGgVE0V6q4wV1ystpyos6o9Iow9WJhEGFxwLdVsAPlh2RE1AULVpUydhvNsFNlisrrcZMxCLqwCbemcEcDmW9HOwcnJXiZQV+g8LiKuYGSddYkmaF4MEIYmQRyYjzccZGDIFnGUCpmuzYGolG00OX7oFisVy7p4bZp.Kj5k56+V9VQPlyaQwpttKxfj4WMe9qnYvLTrlcreDqse+Ag7HO1SXzxkkNhqSKqXggUV.ZynlLbUTSU+CUqqNAZ5vt0uSmgkVrvj1UXQlmK9uwnIAKhADu50ftdziXqEE4eJS0kpfIgEMwrtpHlOKVHOJjyTAZ+i4SPXOxNfRglP2Tn4CvzMnD5yMwjsnDJ+1TB84ZTB845ELhnkZPRHL6yHoen5j7nBJJfN3gKuJSvd7SX0g+tvBym+WxyfeT8Rnd2UYR1iGookB4xiz8fRQiQSMM.+QC8kFjD2q341+J4qYKvJrxJEVfIleUFY7Y4OKe9IcmKEy0EKHz79wf1Mr9QkPVrvOHKL+7z.oMWyz83rHnsjI4ExPgjy5lHCzBkjojSxEmKiTgECT8Gnjvr5hfWNLgiC0bgp.+PV.Z5KwBgQ7EzErBhpqHpgbjmIlIjmuTaofHN3bayC4jFJVXIPu4yA3S4uOfsXLBpXZiVB6EbPkKWLMvyV9hYDDZxYnS67dCrdMsNRbXhleYM6rLaefdt4vg+TVHOOBM0O0zOL7P3DthuWOI5Fxmwgil7bYQxeBSrrIqpa2oVWJMbi4zpFOEN5xZXQYR+C4QYmMQCgilF+7Nm2+4cYONNv3pxXnRtiTne9.t78cHsUp+EOaLUUfoZ5jw6jdx3Pmmk.NB7dNS5SsH0OJbyNMrdwNa3q8GxDvCc4.djVfiF6M3GCAuLm9lyYCd7a0pAjsoyuV123CSAm.9H67Pee5vO56Sk8qvmz9QqY9iYbZtxJOb47Me.8mMLolLaRoaYRMEssI0jYMSpIy5FLPpmAlGAyy.yif4Qv7Lv7HXdFXdDLOCLOBlGBykX4hnbIRtHHWjiKgwEo3RPbQFtDBWjfKBvHFRKFoPJgDhQGjLLpfDgQCjDHEXbMjmw3XH+B4VLdExoX7IjKw3QHGB4OJQ.Jg.JQ.Jg.Jg.JQ.Jg.JQ.Jg.JQ.Jg.Jg.JS.Ji.JS.Ji.Ji.JS.Ji.JS.Ji.JS.Ji.Ji.pP.pf.pP.pf.pf.pP.pf.pP.pf.pP.pf.pf.pR.ph.pR.ph.ph.pR.ph.pR.ph.pR.ph.ph.pQ.pg.pQ.pg.pg.pQ.pg.pQ.pg.pQ.pg.pg.pS.pi.pS.pi.pi.pS.pi.pS.pi.pS.pi.pakDyalDqU8w.l3lpYrt3UdfKao5fgSG+FX30NSq.NlZrq8f2YQFKzml8ZoeztV1UUh20okPGza5ZblonQ3DnOEZL8xr21Yytcg.liD3bNa88eZt4Z1t+aLc+8bZqgv18g6fkFCM8MECiy9w3ME6bkeSQqHdnxuSawOmwreuw5IfOJZ7R+sFTWsVeUhLSeMnQpx2mO.tNBLMmoM2rw96ucjJYvjs5cOkVTbPDDwGbEYq34RN3q0YGiMiTwwcggCwJNaUsRhNB8UiJYe9w7n3wKauj9v7sTxCw.y11PQuHliyuhfc8gK0bRVqodw8.eZNFdnEk2ah7KOQ9RSju7D4qLQ9pSju1n7FG5t9CvUF21YK+.Xw3osg6adgKYbiq1kL.Vs7gQeFKWWbz48iojwOIIiom69IIl4ElS4sZewmpmON2UaS3k+51+Gbr5Xu1M2PM1VfSUaJOF1tBkfZ7dvkv55mDpGV53GcrqRpFzSIEAiu4.VrezQ7nrZepCH3t9vdyQkb+F6COzvONyt6uswyf0j9Qium+CxW38A+x+oNe80NF4xvy6X+Sl29rtL6RCMN6UJz3Gc8d8CS9Y008UoALYPuGo+O977sbni3YXD4+sj59pDMDocXzNGHjXa3Z.A7rAFmAC1Zx6h4QA0lK6PY9S3WZkdCihhU5MrRqfgnfwV52zSJsmkKwPGzM9Bg3ygYWRGCW1.kDD46yhJ66GDodSf4cynVuIUBnRI8esZNmcw7LuIeiL7.UHd0aBBFG0EZ3xW2FV551vxW2FV451vpW2FV651v5+8MDuNwZIv6nLGlZYsaqMMK.s277EfyZ8W6aZTbB
          

          **Edit: The nested for loops are bad procedure but if you are not using a combobox it won't matter anyways.

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

          49

          Online

          1.7k

          Users

          11.7k

          Topics

          101.8k

          Posts