Arpeggiator Presets
-
@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.
-
-
@DanH said in Arpeggiator Presets:
I can make a snippet but it's gonna take me a sec.
Yeah make a simple snippet, one slider pack, one object, one array, etc.
I'm going to have dinner now so I'll take a look when I get back.
I think a much simple solution might be to use a sliderpackdata object (although I've never tested writing it to a file I think it should work).
-
@d-healey @DabDab Ok got it working thanks to @Casey-Kolb (it was a silly error!).
Here's a snippet for those interested, it's a bit messy but you can see how the sliderpack is saved and reloaded (as well as knobs). I figure you can use this as a base for your own user preset system (@ulrik also made a good one too)
HiseSnippet 4059.3oc6b0DaabbEdWIsxhxV1xNIMosAoKHRCnRrY3RJYIVGWQJIJGESIRKJIaWGi3UjCE2nk6Ru6RYKmZ.en8RA5ghhBDfdnAHG5kdH8V6gB3K8TQAJR6wh1jhVfBjFfbo.sGJbm+1cm8OpkxNMNMjFVR6Lu4Mu226Mu48lcjpZnWGXZpavwmXi86.33OlPs80rZsXKYEMtUVhi+3BEWuZshaUp1ZqTsJ2B62Q1zDzfime3KfngOwHbbb23IO+eX9EjUk0pCnMU3Cuy2Y9szUpCJqzVwh1J7S0BWTQUcY4FfMTZCbae5BqTWWaQcU8tP4YXgLbcjquq7Nf0jQjMj.G+nkZnXoaTyR1BXxwOxB5M1uVK8aoQneKESksUAnGj3pAYDo4k0UafjXTqbK1RQsQUa81jCxkptnvvDT3IEVUoghS6tnwj3NDcGAKdvOTuDOoCV7xDl3MDi3MBQ7NoPs5FJcrb6AIaGUXEMKfQSYnIfUrHzxMzu9IEVTGRglU51x6BV1.9fyHRIIkIyoEmMSloN2Dii9GzVXZItmrgXQiNfc1QQFpZRhmWD6fjdGfkGLJURVxRh3hKGpopz.XTEZNQLvVJfrXQ81cz0fOjJICM9F8E0z2N5wg6MjQjsmiHaRhd5NlEVuxkqUZ8HGEs+.iql7dfpF.SfUzplCI9wEmNpzwRA1bLXAkRebhzGZkxF5HZijQ9IjpOJZpJZ.wlc0piXuntFcYOhKF5popayhSCmO0tfolX72ZhwSPQkzlP2baRI8CYaBxjsfg9sLAFkWtR5N5c5pBWcP5nrhoUJLgATOOLD6SJB+3RVZ3+2BMOtc5WyPjjJoE31VIOsXx5sz0MAhZvtSmNMUquK9qgCTT8O4TH9PkjEkUU2F5glxO7PX2K+xhKAZBwQSQHgh0I8AePqgXc5PMEapaH1g3vrMAYlXbjXYBC2AD8CYXXFod9s0Hv6.rxHRR5EdPMEtB41OiNgFn+oGEQiPLNxkQz9r9HzQT72Q3BjepNHwpuWGFziJDgvo+XO8GtkxQwsMTrTAwfWX5BgSObAFhRSqraOEoJ65Afqrazfakc8rDJ3TsHJmB0dNcDR7LkjlhdZI8GpMMhXTtD.WlWkRio8J48T.2pitAbI89hMAV0aonsCNHPSEURTGSQEMQqV.wMgKroNpMTL.0g6WtOgw9CBGljPnjFS.8QUGFZgJFqgmmySM5uJLtiJb0EVdbMulNpSvvBoRpXAZaBCXxvvzuothVpjutVxorG4cssUA22HPbjv15HTc.O0Po2gdjo1Vhfgg6npXQDiyEt5GPyU0kaPCg.MCovb5ZXY35r7v0KAukhYJB6bT1yEs1FQPpXnyJMEo6T5SnM8wxTrxAwKz.rCaNUnMhVR1RFp+W65dbUCQf8GPKFhZu2c1Y6daxs+oXfdrA.BJHgCWtswzcXqDbbGXxIXGmbBXkX2EBNFAGUF643xzSKtieuko7ypvRSoorpInGDVukr1NfFo7SROhFQWHFGP1S3t9xh2CMnGR+cYRRlwQk5j9V2smNoAAXw.BH4CJUpTJPNl4bhJhuhnzYge+kdoncQBYQy0TtNpnF2NP9HjGwSeQqTJ9Pb2GL.VcMz7OKtOA2p.MOhWbsJKHtUwxaVplWRIkufjijheCRkNn4mf3Sc5PHNKKwYCmX6osV4UVpz5UKt3ECex8YZPbMDDhQ2cC+Gs4KPzzFPdDzECJikqTbIrftDK.ItxZaTA2.i3RPFGeQDKS6.crlGBggsZhfWAYQ1vXQ1PYgWYN.5Rjb2lYje+dp3Y2G7mVEnsiUq36BiTFxiEgUx2.b6TJmNTNC8wCIngHyd42kV+Brd98fC0zwbRpWAsQJNiFXkLvPinejtkKJ+FHMF5swI2fS2wbeS3NsAqpgFb0ojlPV36ciOVcmtTCENtFl+HWeJgLMVrSGr8DmlH5vTvwuShZ6kg0rkbJ+tvI7KEASWBIFIRvt8BJMElIEVyGddLSEPEfkd9hokM5.SoxxfVVbhvxYCuychDXGELJBSWjNYSg5HAaFYc5Z1BSUZK8ZVFP6QJooH7NA5KTvhYHn9vF4.5qujjbGSH5Mhh9P0Y1K9kDSF.F7HkHlbsLWGmyVQyJa+lvLiIGNP3hcO1gFGvIRgOfb50UIDYlHstLI8sLfoRREwFznGQHltrqzsgadaFDeonvgPrRqXh6qWnTfjIISZvYCQoCmtKS9CqoC0UsTSM9aMdhwu63h96pYyP6itGfJh4gzM5reM50.So0s81.C6TTrIjieDumxpP7Nk05jpGYHTWaEMEXFs.snNZXNZImbvYgJUPRsvmA6womA6Bcsrz03TZfO6bGeRNrTywmXTN6OwfCIrOrcmgSOa7OYd2gOBY3mhNb2P8XVLg.Sre+rYrBHuUN9upfzYSi+rH7+KTF9kk1izPzxIgu3I4HB3sYcY+CdvC9yW5W7mlO9CNqGY69+yT+w441bETXZHZySAdnwnCvvRAYm4WBrmRc.4DvSHrDvbWK8NXKCMaVXyjIcB6yGWVCnRAV5AUxcaWzXqB667v6YV3VJMrZA4G+sFhiqEPYmVVnmJwywsstAT5qobGFrbxBjVWGtyXWS1Wiw16X+RLNlvzYmaloyNaNoLb7CwHoSDkjdBAOm.Hi7V3xLxKmjs7Z2fRAaYl1xu6lE5G4dRex8r4mKe9okliCU0rcGIF8sLS8.7z4zZVezipthkQ4yL6Lmcloyw0Q1.p6rlKGqB+vLMOYjqOf979hmwZOyyhO6VPwbU81PFJarOYANRvv.75kpUZCwkqTFlmFmiY+GywZ1OO7IzVLqPOPCRTDS3tIfkkQmYi8q4JWte+7.MYXHGz6CoLP1f91n74FjKWVoyN6r9fyeHW2fvYhQa+b2A2rerbtrYymct4lMHV52ugKZmsxxaSc1NIEKJuRsMJWbgRkYgSNNF37YKbfyHAdeJgyHBChIRXbMQDqOCWS35YutgSW.2l09p3kyqC1AVlqgq0388XMRFBVjOmT1YxjWhC.2OPlFxOCdpHuwPTPhlxcUs7.Fmza3SPisnGcGMFtag1rfQVFeq6U5fACG83c8nG+T3St9EIFc4mYYeleTqu6Pu82KDmBtG7wJb8BHLqi1vcAYiMZoTeWM31XHHIWH9wgARcMAXsFuVInAKSA7wmww+LBsUZ.yiebzwa1sC9aMP6pxEm3aGi5xg2kyEfqZ4M3VOhU3.s77rP6yx6EZ+JeomJDn86+sOWeD9JwnVVVX56uHo7ivH4GKpUemRv+wSwFseiCviyCP5aufW2+dAbuRAxxyIE79hvB0SvWjKTXKoL4CwmHagH8E4hCBbRAeu.i9I9SX.f.+DdbJdd5xEzTcFxYhPi9elP07vhSEy3Nwx6+IDBbVpLp78Vjwlee43px+JOgXVNBuU6V86sxUHByM6BmH5Hqud1yN2a9g8ri9wibG8wDHmALqgOIanf7AQgv.QGv3Rd.iW.sTO77.FQnxECIx3gaqbafHizbyNijTz6ayEKTgTIA4PaYQlu0CCxrpGj4qGMxLlvhEWaQXx.elhNQFz3nB01b8RWsTs0pvhMKwhMi0mXitGr4TvmhWzgrzvpGQ.sjbdtCQrBg3UOIildI1cF15.hRvNUiDiBOcmm6ytk767lEX4zQ5iZPY3H6dZbobq3R2SEW+DXmcrKCekF36fFycKpWpTH0n5N8hayL82PoP+vmrH9Hv+u4w6JIv+awIsD3hiMAqjZe+4XkcO2Wrg8dRFCGuSxnmmSwSDiSY33BDof1juyHHdmTwDvL1Qo65gEB78b3Lf5IDVqa6ZVfNz1bXvHwjAvf.vQutmiZ4fU.FFLIlA01UIfHvGSH.xAXUCWDre+CjdUjN.PCjOlqHbzvF7jzAC8Z2VeA8aaWQL3lcAvMJbZNdJBiHLgPk5VvHMqidgG8usLArn7tMapBNbdRGUnDdSkMT.QI589DudRHDzVYC3BYlNBHJ8yAecPy2V.U85JV6G64q4KsPwzoyewkRmNW2pjmi87cJgx32KT7mscQy1VuFb1thdUxywzc5jBK1RVClsZMfJ9lob.dSgxjmVnRWqNcsdDvpSJrZ0Rv3iF1LykICEalbBDSJo0H.KlLltniJ7p5pMBw8N3UycRgU0afdg8du0vnqJMsCXhGd1E.cEb0LgdSrm1aebUhyD6a5bbE2SJTUwpdqvk2gBQdQ2R4OkkWm8WK0rIzaxUXGQX4qbXuE1wWT3mfQVFy4pxqztiJ3B1hxnBqt4Fk7.VLWQd3mqd+k.pxd.tK6sv8qVv6knG+YEs8.FVU0UkM7C6Opxfvykfu29FHUR7yM9xmR.C4edRfwtDe9QfmTnp7iCNDqq20RQamUksLTf4pOAJASXcXvDiHg8QupPdzaii9bF6bbpAzZfe3AvOzNkr2lB0ojuNyZ+Lpyr95LGam4704zrcNsuNmgsSmG3hQfmiJrzlqt5UuPwUVqGQefkHOH5yfnOCh9LH5yiznOIDTgTjqw1Q8KGH7yyOHymAwdFD6YPrmCYrmSXeseVrqwdfR2Di+m.h+FxsAP09lktTVOvODCVVQ0BXXZeVAKHiUV6KswKT.0fji04s+Y3FxRa3dezk96yiZHGq8C0vzrukATCy3xzifa3rtG38cwMLqelNmellm88ws7xaPNRrGwmR7W.7S9xg4mbTgUKVaiRqW5RR8vGYDe9HhC+9mziOh3I9nWyiOhi0qW9HS5wG4cZ7W+Oyy5ibuezkugGeDGdzKeDBSkbD0K+uNEoEG+4ordWRK1B6Gbkm9ugYiT.oUJf3JYKu23iewmkzhs.Kp8C9kjVBHwRADYIOx7+i7qEB0udnGJ+53jGzwotYaUo7lqVJpjg9fS+F+7uYOSFR769D0GjLzfjgFjLzfjg5qBwFSXypRYVZgdUGVgA0gMHzyfPOCB8b3B8Lrc90HcEr7UnqHoZtHQ0+z5Vt7viuLIAFDeG1syOyv2wCq9kIDJtVwxkqb4E2bidUkKuuJXt2vO2W69dpxcpQZ3oBl24Be3e4.qf4Sl+wpBRswuPWvX2YnKXFhZsC0fNLsyGwFTAhAcbghZxp6i9MCfTQp8idWqrP2lM8euceuBUM.n+7hPcMbuj4CrCOhCbk8w1.Wizq.WBOtF35XLAt5i3V2+270R6It0G7QsJ3ItUgO7N+iu3D25vaOGg5lDp8Tf14gJtUtCLt0GDdbqwJLvNbP1g+eMQx1x0MzeC6+r3Aq4aLbKP6qF9l1OpP4kq37aU7SHHIIkNyLyIIkKS94jld5Y3ZqzP4MpWGcsuNCLG7PFdVlgmMS574xjIaNo74xMS9oOngWaiRUcG9zSmNW1bylWZlL4xm4rYOfYeXgq3byBExjNyAQ8U6CpGR3yHhQ+ldTrqkdaRgUvFph+SBCbQOSjUt+qvVzEy
-
@DanH This only works on PC - or
It does not work on my Mac
-
@MikeB well it was created on a Mac so… ️