@NEST-acoustics oh yea changed alot from this original post. I'll post an update later this week
Posts made by pluginboi
-
RE: External Sidechain, I got it working
-
Detect mono vs stereo
Hey guys,
Is there any way in hise to detect if the compiled plugin is loaded on either a mono or stereo track to then script different ui elements for both and also help with mono vs stereo sc input.
-
RE: How to make a guitar tuner
@goldee this is an older snippet of mine but it uses detect pitch and scriptnode to get note names sorta like a tuner
HiseSnippet 2122.3oc2X0sbabaEdWIAEKZqj5LY5zq5fg8mgJwllTQ0sMdTBk3O1LQ+vPRqDmLYbf1EjDU6BrYWPIw5wy3a5L4wHOF8x7HzY5k8MnSuHuAsG.rK2conjkYZ7EgWrbwAmyAe37Cv4rcBENznHQnk8Z8mDPsruEp2DtbT8QDF2pcCK6kQUs1cR.IJh5ZYau7CUSXu1JV5e+vGsKwivcnojrrNRvbn6w7YxTpcp8ILOuVDWZeleFt2pVaGAutvSLNTsXUrBHNmPFROfnXaIjk8pMcYRQXOIQRirrWYWg6jdiDmwM7eDKhcrG0fzdfhLjaI7bUHV8tU8QLO2NIa1HKKaTmzs9xls96f1m4xlRO0D7KzSfSkHq8vdo7va4bvq5kAu4.I6LPZECjtMpmSHKPlNiBO2D0lKogCHfYOKTL7ZszNqhpK.N3xx9jSnsBgASknz8qT4NX3wFOnPgBfsORhOkDhMB25yqh2FqCAJOjJaNX.0QVpnYRLLaQkX26d3VToyHLA6xhB7HSNdLvYHNB7hNTbHEFPgnBrTfkin3F85f4T4YhvSxrjtAYWqFFMsqVS8zJZdK7CoRsJGvBA0TjdNru3Duh3FYQRlUYXHrJtAWXIJUUaAFFVNhJ6x3CMjASc.MTxnQkdVALtng5dT9P4nhe.98q.lOE8CF6CQHbN0KBHWsvymwdFaQ1FVe0R2kRbiWWEiyZ264wbogaBrm34.YpK7CDbXPhcHlKkoHUAGHjz8HGS8tTgmxQdAqCSFc0RlxRw7ndms.Y1ZqJkq7.L3Tji4fADOHj9MiA+9DrX.vRF94.DTYzQfXeYw5EuCtX8ei5YC8C8qMUOZoenG+P8C8q6nenec2heUdC8mvEGW8R2A5YKNiuQE20jOjwokcBoPdq5LovCO9unB107VHPEUnIWm34cLblToAi4NRlfWZiBpHi0zZhoRC1N1aW1kJAUzQQrzVaUUkoU8NIS5oig.0iAowSMKGQ7FSAUrOAxC7DCKYz48.C3Fvyoj2rbkMvuKtJ7O98v2+OCl9b5oM2kddhdBEi4tklp9Mv+NPv77qbG.6S8Le4Tk7UoLpwRatNN.XNUi36ZVnAdBQXlERCwJUR.m9wLJIC.yMiVP0VF9S4CThxFfisGeHtxFJROSSW8KWNgxcoQPNctwClx8zj.EmkJJgCNfvojceFFg3nHgGsbPHCBftDsklXjScWf6mqb1lyFfHJIIzDSUZS8wuIQTXAWAuCMgVqU.jZ1oFLXtyoB5CEddpiUlyzlE6JDrDer+wzv6.Nak2KgQ3Bn72ps506VMGSNXFFE71bl7v.Z73zqkqNm6.shShg2db6FDIQcsXLszClAZMnmB0XXtjbMTCZzIRQ..yoY9PkLR8ruIJabhECV62JGoMsNeZ4H09zZSRGzq1YLW4nzhU9lZinrgiRKq46eRsHxoPVSmPJDGXLB9jTEZ8jZ9LWWOZGQDSY5SmocMv12SB.IJcIeRsALO+HE019PUPV1+dzy5z8vOtY89Os0g60nY2m2+wGzra0JU61rwg20mwKGvGZcZhCwdYqLFgBFiv5w6XcDq1FbSzzDhL6eK2L6+WbzL6+Wzc18+K93ZpHe09tk0.vOYpZ6FHe14b5YVTHHhDGmTQyPO1eMS0eeXsrf8FWFXuEJMeKCZ+5nLn0peBZQ1eGLLAoH6VvHCJWak+ym92+0+s+U2ZWDJaW6ZY2tAR+d0rAMOMqQamYLZe+wWvncPsExTY1CqhN3v9MslCXmSj9afz2+kAru37r1rsmAre2EA6ieIQ3e6+7JhvOM8XhJVuJ1WcRIxdcaKq4YaQ1+6bt3O.F8ivltNpS690eDt8A3G8EPuJWnNbnC.g6XOhLeaApdghmPswyVKtpdaNXPljsWoY6UXkK+T0JysUl4dl40Dt2FoqKY93co4fW3r2epwabmWqiLMZjB1UPs97qrMqUtdWH8R5BLaKWHCVJfR5DRCjagRaAIGff5+y0NQjJNbIX6E2El82hRuuMHjFPBo8Ec.9KEQ7C7ncgMBTanmv4DUT4EujNvfscUbTxItWiE4t7U++TGpVcEikPc9PAbgLU9IXCLMpkzIThMHdbE0XUfTOJ2UO3+B+hmrpZrc7jUSlLSE.GXZXT6mheG1KFmRinfDR634INSczBKNrFbNZZcDdSBFI3LGEICGIHcGen9SYBbeDIpOg4oxCNB7jZk7FHnH1x.nW5.gKXbPsHNfQbRGh5.naiTk5.QqPc8NSiZygqbAKfJR9FGFKB.Ge8IgpuvwxYpswDTpFAohKYzZ6niTy5P7rz03p.pkRmFaiAeJVQnACjV4P55HBzd7jHZY0TKJnzmc6QOOolrYB8mkhB4pNIRbwMg.SWHQTKdhmtCIDNtVRMGJjcvtBwI9DsqegpCL6QLuoYxah5ANK8GaP6p9k5w3OCtaC+PJ3FUGVdUeoq+w08KcEbs+RWG5HgkueHgGEHhxo3dTeVe3txnrDebDsEzgcWUXdV50Ejv4N0O7QsfM4bkoGQNNTmujjJj4X+kWnyZyeaXF9myAuq7S0me605Up+3q.X4qGbeIWcsVBF6wTYoM4mR8fjDMFeaHqX.YrmLgZ9f78EbQxgjoQ.covI7CGpRjSw9b2P6HkDmSRo7N05R8njrQy+1Z6AQgjv80mSsP1hW8ub5b8W+JjAtXUlI9mGUts7Oipb6U.JuNJE40wZ3SbBEO0wTAmJV9FZJv9lq6kYMz9pw3pVmZt4GopKwBZ4h8TGGk49tf8Y9xr4BHy6u.xr0BHyeXAj49KfL+wEPl+zUJi5xncFKE9lTQfPmll5ZraxUcapi5s9e.8M+aNB
-
RE: Dynamic Oversampling up to 128x or more
@Dan-Korneff if you want I have a source code tweak I can send you for a linear phase oversample mode in script node. I just don't have it built to be switchable between linear and minimum
-
RE: Sidechain feature
@Dan-Korneff that would be sickkk!! Haha this one is driving me to insanity
-
RE: Sidechain feature
Just bumping this to see if any one has found a way to have sidechain work in pro tools. I've been trying to tweak some source code but I'm stuck haha
-
Sidechain feature
I've been trying out the sidechain / multi input feature with the multichannel fx plugin tutorial. The external sidechain works great in every daw except pro tools. Pro tools will recognize that there's a sidechain input as it shows the sidechain option in the pro tools menu. But it doesn't seem to process audio like it does in all the other daws.
Any one know any fixes around this?
-
RE: Link knobs - On/off Button?
@Dan-Korneff logic hates the changed() call in both callbacks cause then It starts looping.
This is how I've gotten around the logic issues with linked controls
HiseSnippet 1083.3oc6XEsaaaCEkx1bqRaqncne.B8IYfhBast1ADLTWamLXzkTi4trsm5nkniILEogDU5LFBP+d5WQ+T5mP+C1HojsnbjcbLvFVFhdvvjWdt7bOl7duxCi4A3jDdLvx90KliAVeIbzBlXZuoHBCLnOvpArsOn6h4njDbHvxp9OnrXY2.ne9zy6hnHV.tXJ.3TNI.+ijHhnX1gcdIgROBEheMIxX0Ooyf.NqGmxSkrnNrEXNJXF5L7IH0xpAAVe1ggDAOdj.IvIRF0kGtXzT9aYYq+TRBYLEqFzFLR5nroOhSCULVMKn2TBMb3xnMAH8xvhXudVr+.3wjPxp4Kzf6oM3VfvTOrpUld0KQu1lzqkA8pfRVFTpQFktObTPLYtnvhhOeAb.SfimfjxtIUxVKn16a.6wkqfIdbDZF9nX4fUH7dZqVOxU9QyCbbjRehv8bTrKkvl0Uvb+d2kPOCK5wilyYxAdOL29CknJ.8RFeb6MBQa8x.72J.+x.FQhlSwpybp8Qe1TA5vISvARDYlc012DP+q.ndGcHLYDhcmjxBDDNykyzzWQzXN0KXIKejz6zTbSm+zw1fbONAKdgPDSFmJvdlFTetDjberISb8xESEgNUYvqYSGaoCs0JfxWYSuDkswV4uosxessxV93XegyEG3nCEEt7voGhRGKul4UNJU7aCBg+VDBam8gd6fRzd6JwNK5kzA+MqC9l5PkRQNc25oBxjb1VYfjMzHbOX0ZBlhXmgC8Zdflu1JF6bE2FqNXJSS4VXDBmvE3Ww7zT04BG20MMYRk1x8EEGWoYUR83sAzikFMFGaJTpEJyzUN8IbyoOMytGjIKFKjyFvHhWMGy1TNePtVJS0VOmUxuIzIZuadh1QTRHNFPj4S+bn9mEflvlk2.6LX+qA3toBAmoAaCy+Abc3e54fedPej.opVjGMxHbNNVPThmUe74xRuY0Nrg8wIyD745vM+niTuux.9OVsgc98NKVM3cy5.tF9w2vOeLcm8SkxPgm.LCO8g3NfKWyTVslGlRQhxkvUoDxMHOXVptop1HKgHVXpzqWWuwtUWe6scrqz89vgDQvzp4asJ3q7.w+z7MuKouBlUC0rEwi90s1RTic6NcAUpr8nZFb4Nq5VcUReMUtKzrifsz2J.zGSQkDvegDJlVLwu0ohNaGvNWdWaHmhhWW9quysA1d6sA1XmOinBI2aLmo+ZnVxuIQX8QhaND9dvgn+Kbf3m3oBB6riQxVyjotgmjFMR95cAXIUYLLUUl2plpVX13VpwJBMByB0C9K4Stw1pwV4FauzH35lLv+1jA2lL31jA++LYv+F6QDJHl+lfrt2UWMuidFYbyz+SU1viUicq3EFhHgj2DDT1UWBn+9B7a1WfOYeA9s6Kvmtu.e19B76tZfp+buWjJ3QY2S.fiGdn9krrrNjgjm30WY.+sZlStF
-
RE: Label Follow Knob/Slider
@0x7887 try this for the label
Delay_Lbl_R.set("text", Math.round(value * 100) + "%");
-
RE: Pro tools automation shortcut
@Dan-Korneff haha I've been trying to hack my way around adding this to hise for the past few months but can't get it to recognize the hise components lol
-
Pro tools automation shortcut
@Christoph-Hart any chance for adding in the juce getControlParameterIndex function so we can add the pro tools automation shortcut into plugins
virtual int getControlParameterIndex (Component &) Called by certain plug-in wrappers to find out whether a component is used to control a parameter.
-
RE: Buffer detect pitch returns 0
@d-healey This isn't exactly what you're looking for but hopefully it can help a bit. Heres how i used detect pitch when i was trying to make a guitar tuner
HiseSnippet 2122.3oc2X0sbabaEdWIAEKZqj5LY5zq5fg8mgJwllTQ0sMdTBk3O1LQ+vPRqDmLYbf1EjDU6BrYWPIw5wy3a5L4wHOF8x7HzY5k8MnSuHuAsG.rK2conjkYZ7EgWrbwAmyAe37Cv4rcBENznHQnk8Z8mDPsruEp2DtbT8QDF2pcCK6kQUs1cR.IJh5ZYau7CUSXu1JV5e+vGsKwivcnojrrNRvbn6w7YxTpcp8ILOuVDWZeleFt2pVaGAutvSLNTsXUrBHNmPFROfnXaIjk8pMcYRQXOIQRirrWYWg6jdiDmwM7eDKhcrG0fzdfhLjaI7bUHV8tU8QLO2NIa1HKKaTmzs9xls96f1m4xlRO0D7KzSfSkHq8vdo7va4bvq5kAu4.I6LPZECjtMpmSHKPlNiBO2D0lKogCHfYOKTL7ZszNqhpK.N3xx9jSnsBgASknz8qT4NX3wFOnPgBfsORhOkDhMB25yqh2FqCAJOjJaNX.0QVpnYRLLaQkX26d3VToyHLA6xhB7HSNdLvYHNB7hNTbHEFPgnBrTfkin3F85f4T4YhvSxrjtAYWqFFMsqVS8zJZdK7CoRsJGvBA0TjdNru3Duh3FYQRlUYXHrJtAWXIJUUaAFFVNhJ6x3CMjASc.MTxnQkdVALtng5dT9P4nhe.98q.lOE8CF6CQHbN0KBHWsvymwdFaQ1FVe0R2kRbiWWEiyZ264wbogaBrm34.YpK7CDbXPhcHlKkoHUAGHjz8HGS8tTgmxQdAqCSFc0RlxRw7ndms.Y1ZqJkq7.L3Tji4fADOHj9MiA+9DrX.vRF94.DTYzQfXeYw5EuCtX8ei5YC8C8qMUOZoenG+P8C8q6nenec2heUdC8mvEGW8R2A5YKNiuQE20jOjwokcBoPdq5LovCO9unB107VHPEUnIWm34cLblToAi4NRlfWZiBpHi0zZhoRC1N1aW1kJAUzQQrzVaUUkoU8NIS5oig.0iAowSMKGQ7FSAUrOAxC7DCKYz48.C3Fvyoj2rbkMvuKtJ7O98v2+OCl9b5oM2kddhdBEi4tklp9Mv+NPv77qbG.6S8Le4Tk7UoLpwRatNN.XNUi36ZVnAdBQXlERCwJUR.m9wLJIC.yMiVP0VF9S4CThxFfisGeHtxFJROSSW8KWNgxcoQPNctwClx8zj.EmkJJgCNfvojceFFg3nHgGsbPHCBftDsklXjScWf6mqb1lyFfHJIIzDSUZS8wuIQTXAWAuCMgVqU.jZ1oFLXtyoB5CEddpiUlyzlE6JDrDer+wzv6.Nak2KgQ3Bn72ps506VMGSNXFFE71bl7v.Z73zqkqNm6.shShg2db6FDIQcsXLszClAZMnmB0XXtjbMTCZzIRQ..yoY9PkLR8ruIJabhECV62JGoMsNeZ4H09zZSRGzq1YLW4nzhU9lZinrgiRKq46eRsHxoPVSmPJDGXLB9jTEZ8jZ9LWWOZGQDSY5SmocMv12SB.IJcIeRsALO+HE019PUPV1+dzy5z8vOtY89Os0g60nY2m2+wGzra0JU61rwg20mwKGvGZcZhCwdYqLFgBFiv5w6XcDq1FbSzzDhL6eK2L6+WbzL6+Wzc18+K93ZpHe09tk0.vOYpZ6FHe14b5YVTHHhDGmTQyPO1eMS0eeXsrf8FWFXuEJMeKCZ+5nLn0peBZQ1eGLLAoH6VvHCJWak+ym92+0+s+U2ZWDJaW6ZY2tAR+d0rAMOMqQamYLZe+wWvncPsExTY1CqhN3v9MslCXmSj9afz2+kAru37r1rsmAre2EA6ieIQ3e6+7JhvOM8XhJVuJ1WcRIxdcaKq4YaQ1+6bt3O.F8ivltNpS690eDt8A3G8EPuJWnNbnC.g6XOhLeaApdghmPswyVKtpdaNXPljsWoY6UXkK+T0JysUl4dl40Dt2FoqKY93co4fW3r2epwabmWqiLMZjB1UPs97qrMqUtdWH8R5BLaKWHCVJfR5DRCjagRaAIGff5+y0NQjJNbIX6E2El82hRuuMHjFPBo8Ec.9KEQ7C7ncgMBTanmv4DUT4EujNvfscUbTxItWiE4t7U++TGpVcEikPc9PAbgLU9IXCLMpkzIThMHdbE0XUfTOJ2UO3+B+hmrpZrc7jUSlLSE.GXZXT6mheG1KFmRinfDR634INSczBKNrFbNZZcDdSBFI3LGEICGIHcGen9SYBbeDIpOg4oxCNB7jZk7FHnH1x.nW5.gKXbPsHNfQbRGh5.naiTk5.QqPc8NSiZygqbAKfJR9FGFKB.Ge8IgpuvwxYpswDTpFAohKYzZ6niTy5P7rz03p.pkRmFaiAeJVQnACjV4P55HBzd7jHZY0TKJnzmc6QOOolrYB8mkhB4pNIRbwMg.SWHQTKdhmtCIDNtVRMGJjcvtBwI9DsqegpCL6QLuoYxah5ANK8GaP6p9k5w3OCtaC+PJ3FUGVdUeoq+w08KcEbs+RWG5HgkueHgGEHhxo3dTeVe3txnrDebDsEzgcWUXdV50Ejv4N0O7QsfM4bkoGQNNTmujjJj4X+kWnyZyeaXF9myAuq7S0me605Up+3q.X4qGbeIWcsVBF6wTYoM4mR8fjDMFeaHqX.YrmLgZ9f78EbQxgjoQ.covI7CGpRjSw9b2P6HkDmSRo7N05R8njrQy+1Z6AQgjv80mSsP1hW8ub5b8W+JjAtXUlI9mGUts7Oipb6U.JuNJE40wZ3SbBEO0wTAmJV9FZJv9lq6kYMz9pw3pVmZt4GopKwBZ4h8TGGk49tf8Y9xr4BHy6u.xr0BHyeXAj49KfL+wEPl+zUJi5xncFKE9lTQfPmll5ZraxUcapi5s9e.8M+aNB
-
RE: Limiter Sidechain?
@Casmat set the sidechain slider to sidechain and use the limiter inside the sidechain container. This will make it so that the limiter uses channel 3+4 for ducking but effects 1+2
-
RE: Limiter Sidechain?
@Casmat check out the multichannelfxplugin here for how the sidechain works https://github.com/christophhart/hise_tutorial
-
RE: empty identity is not valid when signing a binary for the product type 'Dynamic Library'
Has anyone else gotten this error / know how to fix it? i just got a new m1 machine and started getting this error when ever i try to compile dsp networks. it works fine on my 2 other intel machines. im only getting this error on my new computer
-
Hise Components to Juce
Hey guys,
does anyone know how the hise components are passed to juce when compiling a plugin or where in the source code i should look to find it.
I'm trying to find a way to use the getControlParameterindex function.
I've been able to wrap a few different juce functions into hise before but this one is stumping me haha
/** Called by certain plug-in wrappers to find out whether a component is used to control a parameter. If the given component represents a particular plugin parameter, then this method should return the index of that parameter. If not, it should return -1. Currently only AAX plugins will call this, and implementing it is optional. */ virtual int getControlParameterIndex (Component&);
-
RE: How to make it
@Jay this is how i save them to the 'user' sub folder but you could get rid of the child folder to make it general. I found this in an old thread I think @Dan-Korneff posted about out so he may have more info if you're doing more customization
var pre_folder = FileSystem.getFolder(FileSystem.UserPresets).getChildFile("User"); function save(file) { Engine.saveUserPreset(file); } //// Save as Button inline function onSaveasBTNControl(component, value) { if (value) FileSystem.browse(pre_folder, true, "*.preset", save); PresetHandler.init(); populatePanel1(); UpdatePresetLabel(); }; Content.getComponent("SaveasBTN").setControlCallback(onSaveasBTNControl);
-
RE: How to make it
@Jay Do you have different sub Preset folders set up in your Userpreset project folder? and then edit this line to be the names of each folder
var presetFolders = ["Factory", "User"]; // update this with your actual folder names
-
RE: How to make it
@Jay Oh weird, I havent opened that snippet in like a year. but I just got to my computer and heres the base script for the presetbrowser in the pic above
HiseSnippet 1540.3ocsW80aaaCDWJMpnwacXEXOOP3mjWScs655FRQwRqSbavVRMpSSKPVQAiDsEWjHEDoZpQQ9Zrua6s8QXeC1tSjxRx1Ks0.SOjXd+m+tiGONJSFvTJYli6VGOKk439kdimIzQChnbgyA6439UdGRUZVFwP5IyRoJEKzw08ZOEI3t0lNEe+8O+DZLUDvpH43bhjGv9UdBWWQczt+BONdHMjcLOolz2e2CBjhAxXYNDOWyqmSJM3b5T1QTTrM7bbu99gbsLarlpYJPlmHCmMNRdgvH+IbE+rXFtnuyXvPFxNCh3wgiJ2qJGG2MGUsyulYm+MdGxC4yoWg.ecACRkF0w.2MtpPp+mQH4VKj1zDR2xabPFOUWwAimuv6.AjPlPAntdnXj0Yi+7FdCjfDBc2D54rgYvh4Z3+fd81l.+oyCa0Bfakl7NZF4n8e0nGeD4QjRMmxzCjIoRArvusgcaTGAjLTPhgA.BSwzOiJBigxiOzh.e28tDLaoHxIDcDijVHCYhLNjkoJDAcmg7PCUvqm1dHM.PwYs2lz9kJVV62.txZvg4h.MWJ.CRASwzAQfCLlPQljISHThJkEvmvYgVeUnLWDyELxjRCTnqIrU.rjXB.eiFcraA7KVFPisVZDUGAg3PdLa7L3jPBhMVMqQDiZqo6TfdXBF4WZ9Gtf0K2.ML8DtnPIkekyAH465ZjFfGcVN6+vVFjGPy2TwehLi3OArH.FktD1o00naZtJpPltZ4XcFWL0uemNOjb4bqjwz4Yh5JY7fQBahJBh3ZIcapgQChpmSvzucuMG.9vkqJaKM4qExzwk4EEAp7HJnpggdMYkYbtfq8qmYM3QgApPDagXc4LxVKLO0r5MP3d0kQUX+kVLB2cvNa.F6H9fAUUHNeeVC5Z03rUWytvXk53SpLMOF56XTkJXwjK355VhTbbs0hvRohiPc5OGfrES.yzCYh7CfJRL8ztsYOs.10LFa.V0QxEL2sejEWI2lzdmcZC+6JLTIp282kbge6eSfx2P+N3+A50KHMsq5BFvucS2CGfZR.P0KKv0QKgksVDkLIfw.plmBsbRj4JFAPr3yf6oJPmJcqBgCQwFXkxuLE3ydGzYsDmzQbEJ6Iz3blgUW..xi01xoBABhnhorPLPtbwfoQXbQDSTqlfqHVUI97trtaaDfVVi.7UrXVflE1YoREovrUvKFxjw9Ak2JrMbTFh1l0Nb.SOl8dMT0LWPra3R4gNcUowPUMl55bZCYMfPGxcH8sMxZzNtHlGiJCNozekVCKHVVGriE4QKafS60vAUs2ZX47yTllhUFqaLSLENncax81tRRCQq+A7RIgVpofpZ+JSaYuuXJ.ycikzvpaNp4Arp9tXwdsfBHUdOv7xVr..yzAlzyGubzlGmWPtP9Eqqpm6kZ1yE9cZ8gVaAdjrHqISVIOqwfiyqjMN2W1UonuHO4LVVYIVofvfQMm155eZSaEXFpolfRwAPO0mmxrqKZgGZ98xyl4XmJB90KOXOplhiqYoAxkxxzbLbb2i8NXdWyvaa4sGSctVlVHqs91wsktf6MKGsCSONbv02vyjHbd+7Qh+qzcmUMe7d617Ljiapmcroc1YO1DJztnEVLsyNOMCP3YjAwzTkkDtes+7EPifmUz75o4bMMqTjiynoo.uSvSCVZuhlkPNFt38Y4Sa4TD.OW7B9zH8fXdv43bmyipGGymB3o6FPsk7hxJLE9FhBvBZKfh4bAOTG43549GvtJhgFCW8sEONXogfgwukgXe3lyjiO9vx.JcZLHLNrqPw0yp+3jOiA06ckCp+oFh2xaDGtVe0w3FqHFghp+OhQ6yato29Sl.83qBvM8F9508sLeD2+BYtF5XdHEZbBkydGkmLFdUW.C7t.J3UX9dC7fkYcObMh.iYhvhE+C7YY1GW6ZY1ujoSBMHS9VaeO7AT2nfBDShh2KtE7vUXMouSQSDPOudc64j.uk6sAA31+NvY8Uqy8VCc990Pm6uF57CqgNOXMz4GWCc9oqTG7YzONWKSLGG.Bi1unapq69BJTYUTE57u.WHz88C
-
RE: How to make it
@Jay using panels and filesystem API. this was the starting point for this preset browser.
Custom Mini Preset Browser Example using FileSystem API:
Hey folks!
This seems to be a hot topic with the new FileSystem API, so for those who need a starting place for building a custom mini-preset browser in HiseScript, here's a simple snippet showing how to achieve the most basic steps for:
- Loading presets from the user preset directory
- Saving a set of controls to a file in the user preset directory with user input for the preset name
- Fetching all preset names in a given directory and displaying them in a viewport
- Showing the preset directory
HiseSnippet 2295.3ocsZ0ziaabFd3tKCrjsRrcC5odfXOoscqhVWmzFajZ48q1MwqWUK6Ew0wMlhbzpIhhi.GpcsRvhZfdnWxk.zS8TAxgh.TTTzeAEnsW5ugV.+SH28A224CRNbHor1EwBvFly7Ny6y6Gyy7Ny3tQTOLiQiPV0t+rIXj0kr6MKLd3VCcIgn81FYcA6tQXFNFs4rItLF1GYYs7uf2qUsUPhee6s1zMvMzCm0DBcHk3guCYLINq0tc9HRPvtt936SFqI806rmGMbKZ.cJfjksail35Mx8H7cc4hsjMx5M1wmDSi5E6FiYHqU1j5Oq2P5IgR4OjvH8Cv7O1.0ClHYy6RC74Hl2JZqgj.+tIVLCAyR2L6eYo8+116S7Iosm4GtrnCmrQn6OrVZdvaCc30dwgmkF7VQBuqX2yKhLINqGN1tn8dgw3nAtPHPGVRYQKc5aYuEEjHLt0X2Q3cifORGQy2qc60cd21sW6lMp2n967NNbYinALmXpSerCy8XruCIzYhHQnQcHVwhcN1MxoW.waD7W93HmOvIQGGgi2hNdBMD9n4pZxrJWEYidSr6zXxfoAaNMNlFV4LXH2pRfJf513AjPLywMHvwKA1tg9NdPK8gjHly.ZjB4N8inmvvQMpGB4ULHGC6HSt2T1gyWzntC7KChxtuCA9rJzkIh.X7wm0TKFWVAt1Rgnlzvr9U8kLPS0ySgjBKRUliS1PvTnX1Q4.xTpWErfLBo3UCnTQxfRZSU.hz9WX0evjXBz7BfBkjoforY69j3.7BLWB4JYlj8x4rtOkK8qHkISvUmmkdvn4BoCFkyAevnpctGLRywVlp1hShGLW0IEImJkMUsZk8WZLcBcxz.fxLaAQy7B.Kw6pjgkrJ9XB9jIzHX47LmA3XugjviDD.CHP3SrzlyVEOD67.XQsJQ0mDg8.J5YxIlDF.DGNClF5wSLJEIIzA7eATfQQgf6JTwGnh2+RftI.VXIfRVjkAVR5nySHzbURLdLa000muVeFkD1b0OAn2TC7TcGgIdKgDooWRnZcHhFLEWhAHTL.8TQ4g3D7rVK1j.RrDD2rTSufUGPc8ULGf2uoXhdjP6ONIRx+kkbbHuOVS4zkHxo2b91ZE7Sy2hICbZpZMOlYFyVyEFFlLTyG.EXeDZNYnR4OCZNc46Ba1ZsVVNbZvLiIRlNDieZFsc9b3TeXpsIh6YS55NGYFqWybpxuSfPplCbCX34Hn2P2viv9MMEYNTHZKhVD+aNdpEMxNGCXNfe9vonCTW2Q33oQglw1bkYcC8By3gTIBWaciwXVX0MLKISarYdzEfcpvxce2X27dPM.l5B4R0RqGcuoIxxOHidSXPqeppNQnd4igYjkBQYcgb1KwtGPEiPFM+ep3436k.xDQGK1HQr0BaFCn2JV8nZMQh4UR3LOaSIQS9hndhom6xUBp0X1FYr76NTulo5JtOjyWTuVM8E+7c.zlbnDZe9mrlEf55Nq9CaIGDrcUbDmwxXxR1M7QOl2C2q1T3sROv.aMn8Z5a0MYJanPnVwzdwQfau4FBRBPN3OJeh1HfY9z5EMUiMexFPQSlKvYvp0HI+QNqVhGHGF4SyiZ+Xwlg2lcP+OCpzfu8eofdNLmpUIkC8BnTTcF+PiFyiNhEXMaZZcRDrCsBfBsUAHylscdJPoxJ3aU1+4CTsHLQ2U5hJrAsPmEUFWP0rbpFa9cofQFBbVvnpeZcGytFLnz9TTVA7otjt42YQz7FXyvoi6iiR1vHQP3v64uc.6puc.8KuvSVDtlfzv8BIPwD3vpty.jpxcDxZIEp.QiE2cvapt6.I2Jh3irZXqw1hDvleqLVHzy+5I+uagpZJjrrho3J1FbuYSSxUAgdvdaC4Z7azPAO.xSvQwDt2vZa7wDOr79MpYuMlMJlNQfe0NvHq5R02H41ObCwABs+V14N.O5oo58eD0YlNHNg3GOTu2gXxQCytbpN+1N8OJ4Jnp8Fu7kuTzLuTnhsxKyMqUFa5I4a8Z7lgV9c7lsr0rjZ4sj631WYIeekk3jbWDhSYpYPn2maP1V+cKSioC0zXP62YhaDnPMMa5p3VF+ZsxqVz.HB0i744tcNTwPQIYBW01rLcczumd33i6H0dCwPbTRSX6SGCJwMBD0Zo7FI5gc3Lm6oN2C+5sdklnoW4mmyRpUokbI6rZ2zrgm3UgMvOquR5BftHFNylgNnunDzWUAZr+gpSCq.dVYvU47exS5jGj+IhIHedzYGjhS9grVydyHWW2w02hRC5EOcvfr+00pu6zvQy1mFNBOCMkgEvDhz5K7788kqwzz0kpZ4+2ytvYrpLm6sMLaTAytyCVrUMYfMgbQ2.RZKOGwW9k+w1kvQjz7wIaAXsr0JKBcwUrMtOJM69Yali5yvtcdRgbxqWztKyyJy2eS878agvvVatJnOmXVFxups4gNKPxk8Qdn+79Ef96uXPWO.8Ue0e3uURnX3P5KJF2fF9m7VKRKttZ8+kryRvQKFS4ErkmmW2v+05F9cLL7m8qNuFtDiqXCJybIsAc6hAcI0n7nxUF29tF9WvVovytITjyntcx6anieD5rVsP97j+8+4EkUCve9u7eOoJBhxoRrVt53PkUtos1+P8.gIUO52XZHOqaw.glGRG223F+qGThIdu68Munn4LZzWWfF+hmghHqvhdVvq1h9nE1ht8s+qkYQe3G96KgI3gO7aFjXmbVrTD6nfLZQ3subJRJVf200Lzu8y6bdJxSyPk37GnoOp3Job1KLoXkRq0q3iNdY68o97KYK+6gxeDXUGvZ0bO7H+wECYj3Y5OR7qkGIcQg6Ur6Rh8FVNdWpD7xOA0qY7pdx4F16LX.bf7Lvth8te7q+2WFcOJj.Gdz9twQDHMz9tSG2CR18v.RBA5R9QUARU9PEe2l+M2yzCG5K9.NOzKUctA+aKUmajzIZrqWD8SSdZVvodAQK.lBEuseM684e6rQxwFssa2pMZLwm7oddbWwOFvd4i4Zmiw7SNGi45miw7tmiw7dmiw7SOGi4mM2wv+u4vsmFSGKWl.MzcGww2sr1IjWomHiD8+gi7rcn
Hope this is helpful!
A few extra things to consider:
- This example saves the preset files in a certain format (key-value pairs), but it's up to you to choose how you'll save your controls and load them from your custom preset files.
- This is completely separate from the built-in preset browser, so proceed with caution. The actual HISE user presets are formatted differently.
- This doesn't include any protections for overwriting files or checks for invalid files / objects loaded.