Change Sample Map via ComboBox
-
Hello, just wondering how to choose a sample map via ComboBox. What's the best way to get that done?
-
@pgaudioworks I'm happy to help, but take a search on the forum, as this has been asked and answered previously.
-
@pgaudioworks It's pretty straight forward. Put all your sample maps in an array (there is a built in function to do this for you).
In your combo box's control callback you can use the combo box's value as the index to the array to get the sample map that was selected which you then load into the sampler.
-
@d-healey thank you. Are you referring to getSampleMapList? I have this, bit it's giving me an error:
const var Sampler1 = Synth.getChildSynth("Sampler1"); Console.Print(Sampler1.getSampleMapList());
Error:
Interface:! Line 5, column 14: Function / constant not found: Console.Print {SW50ZXJmYWNlfG9uSW5pdCgpfDEwN3w1fDE0} Master Chain:! Line 5, column 14: Function / constant not found: Console.Print {SW50ZXJmYWNlfG9uSW5pdCgpfDEwN3w1fDE0}
-
@pgaudioworks
getSampleMapList()
is a function of the Sampler class, notchildSynth
Try using
Synth.getSampler("Sampler1");
-
@d-healey I updated it and I'm still getting the same error.
const var Sampler1 = Synth.getSampler("Sampler1"); Console.Print(Sampler1.getSampleMapList());
Error:
Interface:! Line 5, column 14: Function / constant not found: Console.Print {SW50ZXJmYWNlfG9uSW5pdCgpfDEwNHw1fDE0} Master Chain:! Line 5, column 14: Function / constant not found: Console.Print {SW50ZXJmYWNlfG9uSW5pdCgpfDEwNHw1fDE0}
-
@pgaudioworks The error message is telling you it can't find the function you are calling on line 5. You are calling two functions on that line, try eliminating one of them and see if the error remains.
I just noticed, the error message tells you which function.
-
@d-healey really grateful for your help. I think I'm confused that I'm calling two functions. How does the console know what to print if I don't include both Console.Print and getSampleMapList?
-
@pgaudioworks Console.Print is not a function ;)
-
@d-healey I shouldn't have had the p capitalized, got it. I've now gotten this far:
const var Sampler1 = Synth.getSampler("Sampler1"); const var SampleSelection = Content.getComponent("SampleSelection"); Console.print(Sampler1.getSampleMapList()); Console.print(SampleSelection.getValue()-1); inline function onSampleSelectionControl(component, value) { Sampler1.loadSampleMap(SampleSelection.getValue()-1); }; Content.getComponent("SampleSelection").setControlCallback(onSampleSelectionControl);
The console is returning the right values, but the sampler isn't changing when I update the combo box. Am I any closer?
-
@pgaudioworks Is SampleSelection.getValue()-1 the name of your sample map?
-
@d-healey it's the name of the combo box.
-
Sampler1.loadSampleMap(SampleSelection.getValue()-1);
loadSampleMap expects the name of a sample map.
-
@pgaudioworks try someting like this, where "cmbSampleMap" is my Combo Box
// My Sample Map on Combobox const var sampleMaps = Sampler.getSampleMapList(); // get a Sample Map List const var cmbSampleMap = Content.getComponent("cmbSampleMap"); //combo box const var Sampler1 = Synth.getChildSynth("Sampler1"); // Sampler Reference // populate combo box with sample maps cmbSampleMap.set("items", sampleMaps.join("\n")); inline function oncmbSampleMapControl(component, value) { //Console.print(value); Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]); }; Content.getComponent("cmbSampleMap").setControlCallback(oncmbSampleMapControl);