Change Sample map via Prev-Next Button
-
@Lindon I don't know what wrap around means
-
Here's an example of implementation:
https://i.gyazo.com/41b6e5e0ed6c7b0c719e9f71a6a3b246.mp4
In this case it's allowing a RR group based on the ComboBox, but it should work for samplemaps
Edit: forgot to mention to add checks for min/max value of the combobox, otherwise your + - buttons will go to infinite :)
-
@Lindon said in Change Sample map via Prev-Next Button:
if (value)
{
cmbsmp.setValue(cmbsmp.getValue() - 1);
cmbsmp.changed();
}Thank you @Lindon it is working but doesn't stop when it reaches the First and last sampleMap. Instead it is going beyond. And ends up with the error.
Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=}
-
@iamlamprey Exactly it is not stopping. Going beyond.And ends up with the error.
Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=} Interface:! Line 17, column 24: API call with undefined parameter 0 {SW50ZXJmYWNlfHw0Mjl8MTd8MjQ=}
-
@iamlamprey Can you edit the code? please :)
-
@Tania-Ghosh I just used a nested if statement
if (value) { if (cmbsmp.getValue > 1) { cmbsmp.setValue(cmbsmp.getValue() - 1); cmbsmp.changed(); } else { cmbsmp.setValue(whateveryourmaxvalueishere); cmbsmp.changed(); } }
Then do the opposite on the + button, if it's reached your max value, then go back to 1
in my case i just ignored the event if it would otherwise go "out of bounds", instead of wrapping round (i guess that's what Lindon meant)
-
@iamlamprey said in Change Sample map via Prev-Next Button:
cmbsmp.getValue > 1
Superb... :) Thank you :)
-
if (value) { cmbsmp.getValue > 1 ? cmbsmp.setValue(cmbsmp.getValue() - 1) : cmbsmp.setValue(whateveryourmaxvalueishere); cmbsmp.changed(); }
-
@d-healey @iamlamprey
Can you correct the code?Content.makeFrontInterface(500, 400); const var Sampler1 = Synth.getSampler("Sampler1"); const var prev = Content.getComponent("prev"); const var next = Content.getComponent("next"); const var smpmap = Sampler.getSampleMapList(); const var cmbsmp = Content.getComponent("cmbsmp"); //ComboBox cmbsmp.set("items",smpmap.join("\n")); inline function oncmbsmpControl(component, value) { Sampler1.loadSampleMap( smpmap[value-1]); }; Content.getComponent("cmbsmp").setControlCallback(oncmbsmpControl); inline function onprevControl(component, value) { if (value) { cmbsmp.getValue > 1 ? cmbsmp.setValue(cmbsmp.getValue() - 1) : cmbsmp.setValue(1); cmbsmp.changed(); } }; Content.getComponent("prev").setControlCallback(onprevControl); inline function onnextControl(component, value) { if (value) { cmbsmp.getValue > 1 ? cmbsmp.setValue(cmbsmp.getValue() + 1) : cmbsmp.setValue(4); cmbsmp.changed(); } }; Content.getComponent("next").setControlCallback(onnextControl);
Currently I have 4 sample Maps. It is working but only two steps.
-
@iamlamprey said in Change Sample map via Prev-Next Button:
@Tania-Ghosh I just used a nested if statement
if (value) { if (cmbsmp.getValue > 1) { cmbsmp.setValue(cmbsmp.getValue() - 1); cmbsmp.changed(); } else { cmbsmp.setValue(whateveryourmaxvalueishere); cmbsmp.changed(); } }
Then do the opposite on the + button, if it's reached your max value, then go back to 1
in my case i just ignored the event if it would otherwise go "out of bounds", instead of wrapping round (i guess that's what Lindon meant)
thats what "wrap around" means....
-
@Tania-Ghosh Hint: Both your previous and next buttons are checking for the same condition
@d-healey I really have to learn that single line if statement wizardry
@Lindon took me a minute
-
@iamlamprey Thnaks i have modified the code. Now ERROR is
Interface:! Line 17, column 24: API call with undefined parameter 0
Line no 17 Giving me the error. ComboBox and Buttons working to change sampleMaps but it is throwing ERROR after reaching
out bounds/wrap around
.Content.makeFrontInterface(500, 400); const var Sampler1 = Synth.getSampler("Sampler1"); const var prev = Content.getComponent("prev"); const var next = Content.getComponent("next"); const var smpmap = Sampler.getSampleMapList(); const var cmbsmp = Content.getComponent("cmbsmp"); //ComboBox cmbsmp.set("items",smpmap.join("\n")); inline function oncmbsmpControl(component, value) { Sampler1.loadSampleMap( smpmap[value-1]); //Throwing error }; Content.getComponent("cmbsmp").setControlCallback(oncmbsmpControl); inline function onprevControl(component, value) { if (value) { if (cmbsmp.getValue < 1) // > didn't work so < { cmbsmp.setValue(cmbsmp.getValue() - 1); cmbsmp.changed(); } else { cmbsmp.setValue(4); // I have 4 Sample maps cmbsmp.changed(); } } }; Content.getComponent("prev").setControlCallback(onprevControl); inline function onnextControl(component, value) { if (value) { if (cmbsmp.getValue < 1) // Same here { cmbsmp.setValue(cmbsmp.getValue() + 1); cmbsmp.changed(); } else { cmbsmp.setValue(4); // same here cmbsmp.changed(); } } }; Content.getComponent("next").setControlCallback(onnextControl);
-
@Tania-Ghosh add whatever functionality to your combobox
https://i.gyazo.com/09fe5f8193f33eedba85887fe8b5310f.mp4
HiseSnippet 1478.3oc4X80aSbDD+t3boXCAAHdnOzJsxpOXKfH6P.pf1hwNInnR.q3PDuAaNu1dE2s6o81K0oH9tzOBUpeA3iDeCZmc267s9hiwXnkpV+Rt4e69alc1YlMcEbeRbLW33V9vSiHNtWxq2oL4nNivTlyda639Md97vi4GyGiXjwRTjfbBhLFGFEPbZeZDNNlz2w0sziUV3VdUG8u2+v13.Lymjyxw4HN0m7DZHUlysaqelFDrKtO4PZnk1a0ZOeNqCOfm.nqjWCmHr+qwCIOEqTaEOG201oOUxE8jXII1wc0179m1aD+WXF8OhFSOF.IPzzoGrPF16xC5qPr5amNinA86lEEhcbb85lGSJYhIW2aeZe5D94wlqnEfxsvNd3tx7fWykDdtVvaUC7tpWOeAMRlKQgsK5sGSRDCv9SeLYz0Yk+XUuNbPClbiP7qI6J.hIVT6NMZbSzVMZT+AqWY8JvAQrDcBVf5oO2EMQ+HRmmrwPhTCRMUspYxqVzP+viiCi.yx1Tkg7vHNCHpU0H9LVoS1NOaTB0VjquNC87zWILcGVuBkEPYDzfDlujxYHNy.AkoBdPM+L6tIrvAIj5qW4MqWoLHNlGP1HRPUK4ginwnXsOiBwQn.NjG2+9npnajZFrcuUuky2u2HVwVu0cvAAGCo50J.oyG4p.wG.2zAnZYzH32aL+Q8yrIJbcjRgZ0Q+jEuZUCorp0QOLiWbldm0tagZVGc+4nHrX3wUqq7jB6t+HLaHoes5OPK4syOpYN4mcLyJXb9QLUpvmyH1OfNiStPQrar.QLU3+SNhYx8mcDyJXXhXVApmxkjmwpUuxapTtxaqfJJZvfYJKc4fJAyTrpRuXdFVikDdLQjchjoHTxa5ZpWbwpo5ahIVJxY6wnxmEQRoyq5pjY75LoMbl3r1rx8QatZWaFpky5rE0cROyfx6kRUG9RpKtekzh6cTMgayG6PATdAOSRfiN7.8LWyMqEaQ6ubp8sSjRNSa8Zdp6HSrcR24EyVU1xLr846sMVhUMnRcFvAiHBIUcL4tM4DnyuocUYusIwuVxizdaZFJrxKh+NNeO2r0oSHPupEbmC5c6pnoRRHroa3YJLC0kaVYxmal+4sy+bqJJuuHVN+XWNNd2PKb7tWzhFuOODVDr.X6tBggg7Q0TBOgfELUC3EcizA57M52r2nWgWjM5riJ.Crv6mDfkSOEiZzsTAv0voFWPMR.KlJO0dztOhQaZLyQaZNqaAKHbupWWpzezrw6Jy.uPR4e23McPw081Yv.huLGrq5s6KV1oBWNn7sFnbMudRAACcOFlNSlFOU7xlP6ywr6QK7r6cED0rQ8n+pkZuqU6DHdIll6u2RuUOJjmvlZuRQ9AjHBVBG+V1bgVGbviE7jnhV89GpSVNT.s5fPgsfmwHPbWZ6icD733Af6nWqXaQcSDCUwpbNGPNgHhml2SSBgydniZPrpZjpp7yiIpyZp+9XofN1Va8tz3Pr97FdPiltYA5MKPe6BzaUf9NEnuaA56kSaBn6iiTYFpGTUn65WsXcWgEnKFbYKMaSGNYwMbltDikpSh4ZbY87sY73m09B71rO+Ev9zq2VZwf6G34ikyvXOp5nZG1IvcTfiBiWCZRO.mDHy3Nc8h84LdzHNi5O8MBHCe3PhvF6yzgdjTBWHy4b8VGPBH3XqqzeWqm.CsiESeQ+iJVzbwiEy675q8LvEoJxg9uQexR+uuO47BcWNsKIB1cg7e4myWxSWWGoZC+kBpGvSjP60rVbdPevdPueehc2vUTcXMzMTzJ.0iv5qI9S3WpvlYsNUBalIzwOao.eK8a8SNbKYl8UO9W.zTNvNkNFlvPAIn81+HnLD6K3uz27RJEVuflCfRl9+aYYu8UznlYugxyqwFMbBgdUuz2WcQ3VPDd11r4RXysWBa1ZIr4NKgM2cIr4dKgMe+bsQMlviRj7PSQRfQ2cLIVt6LIwpjyeA7fARUO
-
Content.makeFrontInterface(600, 500); const var Sampler1 = Synth.getSampler("Sampler1"); const var prev = Content.getComponent("prev"); const var next = Content.getComponent("next"); const var smpmap = Sampler.getSampleMapList(); const var cmbsmp = Content.getComponent("cmbsmp"); //ComboBox cmbsmp.set("items",smpmap.join("\n")); inline function oncmbsmpControl(component, value) { Sampler1.loadSampleMap(smpmap[value-1]); //Throwing error }; Content.getComponent("cmbsmp").setControlCallback(oncmbsmpControl); inline function onprevControl(component, value) { if (value) { cmbsmp.getValue() == 1 ? cmbsmp.setValue(smpmap.length): cmbsmp.setValue(cmbsmp.getValue() - 1); cmbsmp.changed(); } }; Content.getComponent("prev").setControlCallback(onprevControl); inline function onnextControl(component, value) { if (value) { cmbsmp.getValue() == smpmap.length ? cmbsmp.setValue(1): cmbsmp.setValue(cmbsmp.getValue() + 1); cmbsmp.changed(); } }; Content.getComponent("next").setControlCallback(onnextControl);
-
This is exactly the function I am trying to code for the Audio Loop Player
How can I implement this for it? -
@ulrik Yeahhhhh... Superb Thank you so very much :)
Working perfectly. -
@iamlamprey Awesome. Thank you :)
-
@MikeB I'm not familiar with the Audio Loop Player, what are you trying to do?
-
@MikeB do you have a snippet so we can see what you mean?
-
It works exactly once - then it doesn't work anymore?!??
HiseSnippet 1459.3oc4W8taaaCDmJNJs1adXcqeXeZPvaevFs0wt+c.aEyMINEYMowHNMXXEEALRz1DUhTfhNodEAXOB6QXOB6QXOB6QXOB8MX6HkjEUhhimGRwvlMBbNd7t6G+cj7N1SvcIQQbAxp79SBIHqOzt+Dlbz5ivTFZqMPVegc2mtqycb5IHQD4ZB9IQDgy1bdXOe7Dh3vV2Es1jPbTDwCYYU5oJCsJuLR+4ce6ZXeLykjMDBc.m5R1lFPkYi1qyyn99ah8H6SCLl886rkKmsN2mOF.YI6VnPr6qwCIOGql1R1HqU55QkbQeIVRhPVKuF2aR+Q7SXwy+.ZD8HehRnMpO3n3g2j66oPrZTz5in9d8RIiHDxxtWF0TJlZto8NTO5zwynnOVqvIyBS9vZoYAu1lvq07COKC3sbL7tgceWAMTloQgsOvdKljHFfgTfIrhmKZoGsh85bXFLYy.7qIaJ.goVT+gsZcamGzpUiutZE0WHUDIcNFKbdxXOJOaWPamG6n23zbHQpgqVpdM87zaWbRlYMky5xFRYjl9brmdFaR8IQPb483b+5wgKKX6gYd7.HDoPUEDdPHmAB0qEqV62LadFieT6KzDs1yXwyIuQdgFnTdl4CmHN9BmuRYsySaT0+7XmWVKBGD5SZ0t4I3iqc6Tw6lW7d4EuedwGjW7gZwWkDxpUVc0XJnuVc0JTlOP4NCFybkTNygyz5UvW.btaJ1uM.T+wjFUq71pUbfOSyq5LUr6ltIq3LbS3pBUJsds21auc+ttqu+gat61azcuSqcKEE7RcHdkheTQPCjltivrgDOc1+T3uYl4TQHA5qi88OBtTnd9UTJ4u5pI6epVI92hMMV2g4L97TV9YUHooVPwKK5.m5oCqjS3yrUL.jCT5qWeGLPwBv4vYf5pybMZjRNESPpQOMlmltLU64JBzpwu7zbAnsbAPMVbXpXCm6zVgmxWJLm04jhSIF3tg45TcVrn0oZ7qt04s9GsNiu+n30oAtyVmweMWcbIYWV8FUdakxUNshyYUMXPg5RbrOQTnZU0VwrLrNabvQDQJMlNQnrS95Z1WbcMyxttwriwD4rsXT4tgD1EUsCkPoPcukSPELUotp2GkT0quO0iHPTn310r04GjFvPmDqrRZiGWjwqMVJ4LswqXqxFSscZOKymspcrKlsW2N9pkBr9EasAVhUE8S3AfaBIBIUQ6VaPNF5lJtEfx1aPhdsjGpIpj8d.ttTp5MSC3OsamISE5bPm.blNzM6DIIg8o+HwrCOjQnruLhMya+guQj94vNznc3AfSvBXXqklWupobC7+BCu9qyzqW6xSFY9829AC+9NQmSndxQSG3WB5LhPGNxng1u4bg97srAMNx8F6ik46lT0BchB3nXt11TslwhnxIlIfqjVLmW3dC6dTo6nhw6REfWXi7UMdSZXupc2ACHtxLvtr8le+Ue24lP4SSgxzFlIwMleS6y23zLdH0uOuOjJbteHEzWmKj1xcVVmK2W.0knrglgRAytLLvEdlCuGmKUUeLeHWbGh.iJjf6yMaxwDQTdOnZSL9sbet8YaVzryVTfhNrsT1nuTx1x9kVHe.W5PkpyWCTuTQqRycBt3WG1pnmes7+pec36uaZJMev8Rd.a4TL1mpx2cYGS7gyIZL9IPIsA3w9xzQyeHYGNiGNhynt42mIEzgCIBSrW3B5IRIrW2rB2dDeBNxXC8W1YanOSr3rGU9avEsmetXV4qOyNFtNpS1N+2nBQo+eVgXO9XIbCK7rOAUcW1yGGzGtX1k.HgwH9pFpgVFTlpkakdeVeBySK7mvmDksUxVIJamp78RLBvtB9gtw82p1Kec8Hv5louSur8NJYmociaa2pYK3tbO5gttJ59NsQnhs4tKfM2aAr49KfMOXAr4gKfMOZAr4qloMphQOYrjGDeTDFnWW86KrrlVe2pD5u.qro+EC