@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.