Arpeggiator Presets
-
@DanH Is that a loop and a local variable declaration inside an object?
-
@d-healey yup!
-
@DanH That's a new level of crazy, I wish you luck :p
-
So you are telling us that the thing you typed there actually works and doesn't deinstall HISE when you try to compile it like it's supposed to do :)
-
@Christoph-Hart I think I'm into triple figures for crashes today!
-
@d-healey Thanks, I've smoothed it out a bit. I have no idea how to work with objects. I can sometimes save the sliderpack arrays to the json files, but I can't get them to ever load back in.
const var SaveOk3 = Content.getComponent("SaveOk3"); inline function onSaveOk3Control(component, value) { if (value) { local presetName3 = PresetNameToSave3.get("text"); PresetHandler3.savePresetFile(presetName3, getControlValues3()); SavePreset3.setValue(false); SavePreset3.changed(); populatePresetList3(); { for (i = 0; i < 16; i++) SliderPack5SAVEData[i] = SliderPack5.getSliderValueAt(i); } { for (i = 0; i < 16; i++) SliderPack4SAVEData[i] = SliderPack4.getSliderValueAt(i); } } }; inline function onSaveCancel3Control(component, value) { SavePreset3.setValue(false); SavePreset3.changed(); }; inline function getControlValues3() { return { "ARPITCHDATA" : SliderPack4SAVEData, "ARPLENGTHDATA" : SliderPack5SAVEData }; } inline function setControlValues3(data) { for (i = 0; i < 16; i++) { SliderPack4[i].setSliderAtIndex(i, ARPITCHDATA[i]); } for (i = 0; i < 16; i++) { SliderPack5[i].setSliderAtIndex(i, ARPLENGTHDATA[i]); } } }
-
@DanH said in Arpeggiator Presets:
I have no idea how to work with objects
https://www.w3schools.com/js/js_objects.asp
{ for (i = 0; i < 16; i++) SliderPack5SAVEData[i] = SliderPack5.getSliderValueAt(i); } { for (i = 0; i < 16; i++) SliderPack4SAVEData[i] = SliderPack4.getSliderValueAt(i); }
You have an unhealthy obsession with superfluous curly braces.
I'm going to make a video for you right now, hang tight.
-
@d-healey okay thanks!
-
@DanH HD version is taking ages to process, hopefully it's done by the time you return.
-
@d-healey Thanks, very helpful :)
I can get my knob values saved into objects and restored all ok. Just the sliderpacks that confuse the bollox out of me.
-
@DanH Make a simple example that takes the value of each of the sliderpacks sliders and puts them in an array. Or a simpler solution might be to use a slider pack data object.
-
@d-healey I can get the values into an array. I then need to get them into an object and then back into the sliderpacks....
-
I can get the values into an array.
Can you get them out of the array and back into the sliderpack (ignoring the object part at the moment)?
-
@d-healey yup
-
@DanH Can you access an array that is inside an object?
-
@d-healey yup
-
@DanH So which part are you missing?
-
@d-healey how to fit it into the system I'm using to save the arp presets. Let me have another go
-
@DanH Make a simple snippet that saves one slider pack into an array and writes it to a json file and reloads it. That will give us something to work with.
-
@d-healey Well I think my issue is in the setControlValues callback below. I have all the data correctly stored in the json file now, it's just loading it back into the SliderPacks that's the issue. The knobs all work fine
inline function getControlValues3() { return { "ARPNOTESNUMDATA" : ARPNOTESNUM.getValue(), "ARPSPEEDDATA" : ARPSPEED.getValue(), "ARPSHUFFLEDATA" : ARPSHUFFLE.getValue(), "ARPSHUFFLE1DATA" : ARPSHUFFLE1.getValue(), "ComboBox1DATA" : ComboBox1.getValue(), "SliderPack4ARPDATA" : SliderPack4SAVEData, "SliderPack5ARPDATA" : SliderPack5SAVEData }; } inline function setControlValues3(data) { ARPNOTESNUM.setValue(data.ARPNOTESNUMDATA); ARPNOTESNUM.changed(); ARPSPEED.setValue(data.ARPSPEEDDATA); ARPSPEED.changed(); ARPSHUFFLE.setValue(data.ARPSHUFFLEDATA); ARPSHUFFLE.changed(); ARPSHUFFLE1.setValue(data.ARPSHUFFLE1DATA); ARPSHUFFLE1.changed(); ComboBox1.setValue(data.ComboBox1DATA); ComboBox1.changed(); for (i = 0; i < data.SliderPack4ARPDATA.length; i++) { SliderPack4[i].setSliderAtIndex(i, data.SliderPack4ARPDATA[i]); SliderPack5[i].setSliderAtIndex(i, data.SliderPack5ARPDATA[i]); } }
I can make a snippet but it's gonna take me a sec.