Populate samplemaps based on folder choice(almost working)
-
Do i need some sleep?
Im sure its something stupidWould really appreciate if someone could pitchIn
HiseSnippet 2752.3oc6Zs0aaiiEVJopSs25YmYv7v9xBPXLOXijFeoMYtjcvl3jzIEaRaPbZmAHaPfrLsMSkEEjnRpaQ.leR6Og4mz979xtGRQJQIeIttIEc1ccaQMIO7b93gGd34SxGEPcvggz.CyBmLxGaX9Pq1i7XC1YfMwy3Y6ZXVzpS.8pPbvFFsF4aGFh6ZXZt7OwG2rv8LDe9m+0V1t1dN3ztLLdEk3fOfLjvR68ns9aDW2mZ2EeBYnlzOYqm4P81g5Ri.rrrUcCeamWa2G+batXKYYXd+85RXzf1LaFNzv7dsncG0d.8JuX4eEIjzwEyazvnMnn3teJ0sKGw7dM1Y.ws6Qp0bnggo0Qodfki8.es0gjtjj9S8DegX.T5Lz8GlKMK30PGd0me3YpAu6ECuuzpsS.wmkNBGa+Aqm4wvA8rgs.cXEKqwR+q6asCEjvis1P6WieZ.zHYFU1nd8UQqWud0MKUrTwZ0P+33ePmhZaOz2EOz1+.RHCc1DjBUqVohvFIL7k1A4lvOhTPnOlsCcnO0CZTobFoJywPdMD.yUDVxmorK07BxMiPQuGlXSoToyTNTE0h0m5G4x2zPrAXztj.rCrONB4ayFTpXeWZGaWT6COnKI37PrKLpbhp9X1ArUURf85h7oDOFhQEJrqRgBGas5HRrg5QB.70i3hQDOjcpbqhrAcT6su8sJQcskRNFb3lFViYVyqQ75heyK5UIClQqfJWqtvWkUGb.O+Z.PU4XGmTK8nACsYLb2jcwPPcmdlPFD7AD.Ugv2Hzv7JM1DQP+EML.sWYkpuKdN78QO7U7y94w1oDtp4BkJf7aqEF0IjEP75WoADO2HNdVhg7fbM+nvAUjyjK20b.Oif+cfPj973hoF2qGEty1mL03cXLoOrTQhmKwCBFh7bXDpGBxAt8I7oEPcq3nlypfNcivUKUT5fboNfumvvC4d6D43FpRYQ2kqtVnuKAZ928DVq.72Z0BwLN1Zh5XCYH.ywa0.FhzqhXdmJrDeMhJuc4puq.2bv37+KyA00BSs0pnxkU9ZgfYha.MIRyEznV6nNOpm36aWdyaVqSZe6B3vU7hppRCf+Jj5hWyG16YYWFqT9QnxqjAOU2TfyqEvMFySZw2BV7p0i1J6VzEz51wEnr3h5EtFzwLBT4vQFPtisqaG3Z4J5QopHYsP3mSY3W3UoZw2UrPwqKhxOTudSbLoB441mzv7BFBl0Dq3EMrCNPcXQIHbyY1qlsl9Uy5UN3D6SzDj58LOB6E9XuocgsgzQBWcujDUfnLwE2ek7hab2WQvW4SCXFD3NZKKvWZHfLzvzzPpk4Xp+QqLANJknpo5AaY7xmsqMyliFsBIJN0J8Zc7K9416c7i0Jgf6Ihq06gVMVqt7iQR4dOzpdZu5U7UxZimjNR1p9JY0TaV2Tkesh.u7qvAgvtM2esw50g+6NqVNNDLMu0qEST2mrZru4g2lUigtqKGS.hsccoWIJG4RYLHuBGWtl3cJx2Tp3DxjEEhEZZUDKHBGquOpE3gNRVgWbcWpDpwXWT6ETF.xNHvdjtclYkMB8dLdH8RLJtlCTu.5vTvg7fvWc04LvNH7DpbNfhJ2Z2yOHp6Uj9kWk+8eYzaguzVqy1pN2eewWlPQU0iqiJa4atXu9rAwUTkd+v6R+5bUeklktH1RW.VJyxHwRWLMKMdQZAXeWdTdFEc5Emk+BzqS+57T9VtoI1edoeW0ttJlchQny+csB0d.0tapSaR0vkwF2b0bpHXWPwIgvUxtsDeSd0MKLqKryczcxWcOIvotDW8mDW3Mk5QVULAXO89l.5bdkmyWVHgnSjYnl.Mmec07CJsl.MSK2131Z5YAS7x9QLTDv4BxRHYYnuR4YRBWzLFHkgfsBXEALJuBtJFM.p.Ur.iixhMAbAFOuXmQZvHIeAsCOKv6tNA47iKU73IPEyV67udB.tYOgaVAajX9rxDlPYpTH4qvWGEx6gOXexkXOTH12NvFJZSSShj+97TIJpMmWN0QlHR2fgmqvOO6l+o0OayIHS7JWkCz+zFmkUW.v+YL3I7fbdXmWCjDD3KQ0vZx1M.a2cDfdbWsYxoSDtKtGjUnaEvucpNjNqptmh+YLIhStkEiU2jCHaeeNec4iV.+Fv0w8abWnlRwtg3axF73orV3LgEbfUDjyL9NQwVic7IgWiGooSHMagBnYmqcFmaTYbystylrcZGkxLYM7OVt5w+C.zcChFh3kusIp0tqhZC+a+8WEgYN2XlbwB3lSmO2Ynko0lizz5Vt5lYWKg.gx30inuV69Cn37AqhfT.qphkamseU26u+OnDCbAaNW9fl2rOnVsaZ2KzOy906oaq4b61Zp41l.GUAhKHd7OSjm5TFWmq5TDQxWc1JHGmUcgAJCyheoYdRhkjjQNvtC1UvO7yr5QgqUT7BApTJBgllsA5Vb9aeQBoOEWwwo4.jknc4UPmkAEmVnb.NyrrTc3zY7BIrQ4HNNAlUyqE+RqiHLmASwjMxZx5ysIkTEKYsWudXGVp8tm0S+kalWntp9ymnnqyfznCgTyxR6D5qfkp0s.85O2p45arX7qOJ.Kpzj7VL+YH7cM99lZVNB7BApwdR8ueib1e6gPL03.PtzNF6C2e.aQBr+3zwO93eJfF4qlclUqXa8j.3.L3wxM1K7vsGPY47D6DPCC6AqWgRCyM5QQA84N2LcdL9RbP3Xc+7ngvNtmGbmYbTzKCw7GTDw4PanLk2jSbg8pehs34EAGnDsajqcybsebt1OIW60y0dibs+1z1IzC3ATekURSjC0eDZiIkyv792oOWjO94Kx7jXJnLYaB2Urm2kPvMzSr+AJByNxko5sQNidH0i5Of5QbFKXA1662GNplEMSCkayXPzKuy00UhK1NTbbrgltO.td0NPcD48XoNKu6exJFBHdB.zmNYkq+IPV4Yg9OWdDB0l+Zot68VOzRbhFwyU+AXsioQ7B+UonrfrXwWnqmKqogrUc4SeDnNTm6.eTC0HMjOzaXjFxQLbTp.rr76w0LrLPSDxCIus0Exm5laOMDt7fiGdkF2kPbnsS.8bm3Bf3.8Ahd.I8DOz3BVGxaiZj7b04nzXHjZ6bGmLZYr4zbAlyiWf47jEXNqu.yYiEXNe6BLmualygeqx1QL5v3TDPGGsmrRz8RippmTfKDs6iCXD96qwbW7kPgGwmpJ.4zCeMi5KdCKRBBP2yw6X4MouZjC1ZTRie8zsthzkMHoieqyVCvj9CR+Yq7q1aIe9MpWQCiRcYDekpEjZ3M1tXK9ZHAWO385E3ngvKt0P384Hr4sw8zlKqkiJ8m9ycxO8kaiqeLWZB3k+xvtiw67d20czuZnOLFIK7OsK+49m1UFBHJw9sszodn58erUFRGo1ZB7MReum4HajtTxwzHcfDZFoqww3XjNjhfQZOorKR6KC0h3CkiQtHU5OoXVTxp0t0Zs64uHhUq9Xu.8Oa9dA5ftNxFV8ZR1hzOwNw8nGJm3wEnR621mwcFolOBGAuaS1t77AWi6HVTlKqygR+7PBApTrOwEjh5jpmudqDdSpt9lsz4LsP9hFyuu3Cjl0u6tjb4+m+RxEhf3mh6ySgc4GUnNG79rLWhe+ZByOKwO5II2OKy+M7Ik7W7EmR5ewCNOTTMWRRPMMj98jc5GLJ++rT+uQVplKa7e.YMvthB
-
Perhaps my question is....
-
Why samplemaps(Array) wont populate on click. Only populates on INIT
-
Why wont "SamplemapList.set("items", ""); is not emptying a viewport.
THanks!
@d-healey @Christoph-Hart @Lindon @-anyone? -
-
Q1: becuase your code doesnt have a click event that is asking to do this
look at these two line sand see if you cna work out where you are going wrong:
const var SamplemapList = Content.getComponent("SamplemapList");
SamplemapList.set("items", "");
-
just loking at this now.. Thanks for the response!!
I dont quite understand what you mean to look at "SamplemapList"
Could you elaborate more?
I tried:CAT.setMouseCallback(function(event) { if(event.clicked){ for (i = SMLdir_start+1; i < SMLdir_end; i++){ var newName = sampleMapList[i]; newName = newName.substring(10, 100); formattedSamplemaps.push(newName); } Console.print("excuted"); } ;
I cant compile...
-
This post is deleted! -
wiget does no appear in API,. im at a loss..
-
@ten7kur yes, you are starting to confuse me now too... this might not be for you. :-)
-
@ten7kur said in Populate samplemaps based on folder choice(almost working):
setMouseCallback
I cant manage to find any example with viewports and clickEvents.
Can you point to an example? -
@ten7kur viewports dont have mouse call backs - only panels do - read the documentation:
https://docs.hise.audio/ui-components/plugin-components/index.html
-
This post is deleted! -
So how come the SamplemapList viewport is not populating on Category viewport selection?
Only populates on INIT.Im doing this in onCATControl
if(items[value] == "A"){ SamplemapList.set("items", ""); SMLdir_select = "Folder1/Sub-folderA"; SamplemapList.set("items", formattedSamplemaps.join("\n"));
-
@ten7kur Have a look at the watchtable, the samplemaps names and start/end are looking weird...
-
@ustk said in Populate samplemaps based on folder choice(almost working):
@ten7kur Have a look at the watchtable, the samplemaps names and start/end are looking weird...
Yea oops messed up along the way somewhere.
This works, but still only populates on INIT.Im trying to send the SMLdir_select from onCATControl back through the script to show the new formatedSamplemaps.
global SamplemapList = Content.getComponent("SamplemapList"); const var Sampler = Synth.getSampler("Sampler"); const var sampleMapList = Sampler.getSampleMapList(); global SMLdir_select = "Folder1/Sub-folderA";; global formattedSamplemaps = []; global SMLdir_start = sampleMapList.indexOf(SMLdir_select + "/0"); global SMLdir_end = sampleMapList.indexOf(SMLdir_select + "/zzz"); for (i = SMLdir_start+1; i < SMLdir_end; i++){ var newName = sampleMapList[i]; newName = newName.substring(10, 100); formattedSamplemaps.push(newName); } SamplemapList.set("items", formattedSamplemaps.join("\n"));
Would this solely have to be inside the onCATControl?
I did this before. It works half way. It populates Samplemaplist based on CAT Item selected but its not clearing the SamplemapList viewport. So everytime i select a CAT Item it just adds and adds to the SampemapList.
inline function onCATControl(component, value) { var items = component.get("items").split("\n"); if(items[value] == "A"){ SMLdir_select = "Folder1/Sub-folderA"; global SMLdir_start = sampleMapList.indexOf(SMLdir_select + "/0"); global SMLdir_end = sampleMapList.indexOf(SMLdir_select + "/zzz"); for (i = SMLdir_start+1; i < SMLdir_end; i++){ global newName = sampleMapList[i]; newName = newName.substring(10, 100); formattedSamplemaps.push(newName); } } else if(items[value] == "B"){ SMLdir_select = "Folder1/Sub-folderB"; global SMLdir_start = sampleMapList.indexOf(SMLdir_select + "/0"); global SMLdir_end = sampleMapList.indexOf(SMLdir_select + "/zzz"); for (i = SMLdir_start+1; i < SMLdir_end; i++){ global newName = sampleMapList[i]; newName = newName.substring(10, 100); formattedSamplemaps.push(newName); } } //else //SamplemapList.set("items", ""); SamplemapList.set("items", formattedSamplemaps.join("\n")); }; Content.getComponent("CAT").setControlCallback(onCATControl);
-
bump.
Anyone?At least the simplest of question;
Why wont a viewport clear its items with:Viewport.set("items", "");
??
Thanks -
@ten7kur said in Populate samplemaps based on folder choice(almost working):
bump.
Anyone?At least the simplest of question;
Why wont a viewport clear its items with:Viewport.set("items", "");
??
ThanksI think it's a bug. i just did a simple test and you're right, it doesn't work.
-
@ten7kur possibly try to insert viewport.changed somewhere in the code to tell the component to initiate the callback and update item list. I believe I had the viewport updating not to long ago, just not in an if statement. Might not work, just trying to help
-
@d-healey Apparently, you need to have at least something as a workaround,
likeViewport.set("items", "-");
orViewport.set("items", "Select a category");
I think
.isNotEmpty()
is the cause:void ScriptingApi::Content::ScriptedViewport::setScriptObjectPropertyWithChangeMessage(const Identifier &id, var newValue, NotificationType notifyEditor /* = sendNotification */) { if (id == getIdFor(Items)) { jassert(isCorrectlyInitialised(Items)); if (newValue.toString().isNotEmpty()) { currentItems = StringArray::fromLines(newValue.toString()); } } ScriptComponent::setScriptObjectPropertyWithChangeMessage(id, newValue, notifyEditor); }
I'll try to remove it...
-
@coreyu21 said in Populate samplemaps based on folder choice(almost working):
possibly try to insert viewport.changed somewhere in the code to tell the component to initiate the callback and update item list
Tried it but no luck..
I looked in the API, found "changed()" but it seems like it exists for all components Besides the Viewport..@ustk said in Populate samplemaps based on folder choice(almost working):
I'll try to remove it...
-
It works by commenting out the
.isNotEmpty()
condition
@d-healey I'll make a pull request to your fork in a moment if you want this fix of course...
The fact is that I don't know if it can involve a wrong behavior somewhere else in Hise, so, be warned if you use it! -
@d-healey What branch should I use in your fork? The develop seems more recent than the scriptnode one...