Custom User Favorites or “Setlist” mode
-
@johnmike Or you can also use tags in the preset browser
-
@ustk I tried the preset browser tags…that was very messy as well…the favorites system was a bit cleaner than that…
-
@johnmike this is an example using a viewport for the set list
The setlist is stored in the AppData folder and has nothing to do with the favorites.The backside with this method is that, if you have more than one preset with the same name, it will load the first name that match
It can be solved if there is a way to get loadedUserPresetPath instead of only the name.
Maybe someone knows how to do that, I don'tOr you can go another way with a custom preset browser and using the FileSystem functions
To try this you need to add a bank and some presets
HiseSnippet 1905.3ocuXstbabaEdorW2PlD2boO.HbxOVkngQj5lU73FpqMZRjMGQG0NipZJztfhvdIvN6hUxb73LYxuyO5iTdJ5uyiPeCRNGf8BH4RKYNwUiuHfysO7gCN3rnWrzmkjHicp03oiiXN0dO29iEpg6MjxENGsuSsOvsWLKgoH8YpPdhxY2wQzjDVfSsZ24ugZUq9ccz+7+9pcogTgOqbJGmSkbe12xGwUky1q62vCCOjFvdJejk1q28HeoXOYnLEPzcbW0Ih5+b5krGSQ0Vx04qoICcp8YtazYM+0C1JnSmM1dSe5lrsGPGLn8ZAqu9lOX61qsMc8GrIa0MbpcuCB3JYbeEUwRbpc2ckAi6OTdsvDfS4I7KBY3f1N8gHal9PYX.tDwYc1aHOLnWNUk3.doWIwcGCw8WbOlGvKl2l.QAjRKrIvZKMI7tyDvqsM7V0BdU.oZVP5tFH8gt88i4QpRIHddW2iDJV7.JrOYCEitNK8y0c2SBZHTsFQeN6vXXPgEdat5pqPf+Y4G1nArWknHlzicikWmvhIOhja7kL0dxQQRALvq4DZ0Dr1XLjT8sPR0o8lqgEZfF03K9h5zvPRJFpHsKSHzDRDUMLoQL6x7IQS.Wdf3Rtfgd76.KLX.E4k4qDf5YADL8FysIz3X5XhmTDNNySDAj5krr12YFC98ryyr2blff9ARSyVT6DEsOUQA8NjGx5ONQwFgXPmTE6YMYllHZ3hP.pjAoBeEWJHIzqX8yQaiW1nNIGuD0PFIOxC.mQTR8b4wcfNNfEgReZHQdwy.n7xlYvu4WluPd0CKzQ6lGk6A8V.lggP0K2vVATEtITWqcqqi4J1St3YLekGDBs.CJiYz.CHMzq14TQ.IMBbQA90b4Ub10QxXEXILU+xsmW0nBNwRCjRpHVSvKChkipjYVfEsMWpW+gRZvNIYD.pQY5AnUqrQv7EYv3bdMAVaTRyUxYfVOSxEdM+mhlKaV0vhh8BleJPTTEgK3pFSxL5CAAA4Invle1hdF9RJ1IH3oxrJ234qXYnme9gqUHWQCSYZpjOf3kMpNLTO9SxgHjVqfxYIdkmm1KMNFbQ4wJrDs2xKClqsOmMZEklL7VX2CQav+hY4PpudayjuTropcq8wBznW0.9CjI2n5xG1DPykwcfLZXOnNxEvsKdURRHM2PmdMRBfIip04SymrOQqLTvbzhx3Yj1YkoLvp4TTIukOm7IOhzr4LDrAhGDxFgK3pr7sF4NyBddL77XlbZ1OjQisqqUA6tGpyhPrEYwnCLqqF2DULMS75XAafMOBnBvmu1w5HSjf85oghM3ajCxW2gLwkpgYjgoLFdoFTmJOcSa24kDiEjfIFHiIdQPkH6KWwzPcThJqNfdUW.vjfVO6TO5sxy6dVN4LqeuEWDvdwSF3Es74edyVFIMMot0u.Jy+b8udCYjVcKT8FwzzmdWngE+9XIbqlvb+BTNlLsnACpTVl6Bg62qRL1ma7qyPOQ5nKXw16gnhPubS1fn67aPzt+UeC6XonTbDbUxShXh40UqSFkBMStTFp.UU5VIueVqj8C4vEnNbniw649MhKZ6nwqcC+N2Va6Lss+5W47cGgWEisylAF.fQrXEGW601mcE7wDllaq6tOK44JYjSs+TQB.zcqJqabSLODR9TbwkOEtwVG4+r6Dch57BanO1dv07.0vhI9kep6PF+xgkeEyul1MCiF.Msmu3x7Oj48bWu85qs8VcVaiNN30+VB57fs1b6Na0oskfNl8PMSrz+cI2W1fPZhak8gpR6lpTRAzDmJNksRtjCdQDUj.YTI6j.NIcDpw.ZXRoJltOq1bLyNYFeBIdF0mPT4zvYA7L5WRZuZgQvcoUGhSXX4gpksOKjolir9PgS+g6RisEbH8JI19I94hEnnDD1hmvrzvvdvmJjKOYBRJasdDviArckw.aMg7GmNxPsnYczSYF+2wLkSf7LIH3LXdBY0VqM0Oq7FNOL845Xfkq1Ap+UrNyhvJU8eEVYP1Ixq6AsJBG.ts1UP26JSEA3J8Lifig1qMLzzRJyJmVRNOOizFuBKSTbn8d2TQFqSoeZWqSo+P2IOk57ul9TpyQceChTm4Eo+yO9lFo2wDoOJKRrfSy9RGczdW2hKhrB4uDaERn9xTkfhmNjckcguDFciolN10xQBSYn7GJXFDku1MaJZzbeW6Vfs4f.K.8iWMEf59umgC9qcmEC7jikXuoz3w4W8ba.0G6NSWiyCYNi++Jxtuqc6byktd4eTfZ1W14CbOVFjFRUS9PS3ywkI.tJXhW2AeAGnvlZr8y08G1qOcag3G51iq7GVMFWpBLh8h7V.iYuY266dvfAvmuWBv65d3+3syCz4bhLE6D4XpJlCoLtv0I8gK68YPzEBVH1bWskv9mLiWEGiLPelHPO32fexD1FGWKSX6bgNin9wxu22z.F9pfuidF.SB8KnV28XbLoh11FwC3euu+jtZFC6rnFt1hZ35KpgarnFt4hZ3VKpgO3lMDeC4cRUxQliMNNG26.cCh0pcffBYf5rUmeGGayNb
-
@ulrik Sick.
-
@Chazrox as far as what I’ve try already…I’ve told my users to just use the favorites and just start/un-star presets to create a “set” and then I tried creating preset browser tags that said “Setlist A” “Setlist B” etc etc…but that was more confusing to the end user…and I keep getting requests for a proper “setlist” feature where the end user can have a separate space to store presets they want to recall in a live performance that they could add to and take away at a click…
So
Setlist 1:
Preset 123
Preset 456
Preset 789Setlist 2:
Preset 987
Preset 654
Preset 321Etc:
Or even just a simple single Setlist that one could just quickly add and remove presets from not delete the patch entirely…just add/remove at will…that’s why I liken it to a “custom favorites” feature that I could call a “setlist” just haven’t seen anything like that yet…
-
@ulrik oh wow I was typing my other response and then refreshed the page to see this!! Ok…I will try this in the next few hours!!
-
@ulrik getting this error and it's not adding it to the setlist...
Screenshot 2025-08-23 at 8.53.52 AM
-
it doesnt know what 'setList' is because its not declared. In that same function...
change:
setList = obj.setList; to local setList = obj.setList; // try that and see what happens...
-
@Chazrox I think setList might be declare in
on init
I would expect an error on line 32 otherwise. -
@d-healey would that mean that the combobox isnt declared properly 'SetListVP'
? -
@Chazrox I suspect
obj.setList
doesn't contain an array. -
@d-healey ahh. I see.
-
@johnmike Ok, my bad
I have implemented some checks- Check if the setList exist on the disk or not, if it doesn't, it will be created at init
- If the saved object is an array and contains any items
I think it should work now, please check
HiseSnippet 2004.3ocuXstbiaaElz6xsQJoaS5k+yno+ft0QwR915jYaku13Iw6pwZiam55lBSBYg0T.bHAsslcbmL8InOR4on+tOB8Mn8b.3EPIp0d0jsZFaIfysO7gCN3P1OV3SSRDwV1Me0jHpk8G4LXBWNZuQDF25n8sr+Xm9wzDpzc.UFxRjV6NIhjjPCrrseze.0xtwisTe9O+9cIgDtOsbJKqSELe52vFyjky1u2WyBCOjDPeEarg1q26HeAeOQnHEPzibV0Jh3eE4R5KHnZK4X8UjjQV1+FmM5tl+5AaEzs6FauoOYS51CICG1Ysf0Weymscm01lr9y1jt5FV1O4f.lTDOPRjzDK6GuqHXxfQha35.bJKgcQHEGzwZ.DY8zGJBCvkHNq0diXgA8yopDKvK8KItGoIteoywr.Vw7lDHJvszBSBzdopv6QUfWGS3spA7pAR1FP5wZH8INC7iYQxRIHd9Pmi3RZ7PBrOYBEstVKIa5rm.zfKaOlbE8vXXPgEdat5pq3B+a4urYSXuJQ5pSO1MVbSBM184t4FeIUtmXbjfCC7ZUQqVf0ZigjpuARpNs+bMrPCznle9m2fDF5lhgJR4xDWRhaDQNJoYL8x7IQS.Wd.+RFmhd7aAKzX.E4k4qDf5oAtX5Mla6RhiISb8D7vIYdxkCodIKq7clwfeO67L60mIbQ+.ooYKpchh1mHIfdGxBoCljHoiQLnRph8LlLSSDMLdH.U2gobeISvcSHWSGji1luoYC2b75JGQcyi7PvYtRgZt73NTEGvhPgOIzUbwqAn7lVYvu0WjuPt6KKzQ4lmm6A0V.lggP0K2v1ADItIzPoc6ahYR5Ku30TeoGDBk.MJioj.MH0zqx4DdfaZD3hB7q3xqYzahDwRvRXpAkaO2UCkXn.xH0DpJzxvXw3ZIlEXMaRkpkenfDrSR15G0PgG+QT+qbYCUgUMnDNzagelnTCTfKjqn1jqPGvNY.K4plnFdepJPrDEhVd4lMf0biJ4EPXAJPlFygecWcX.QLCNivyxswsAHKUBUmvYm3BahiSzwaGTCHdpuw8z1YvpH1EG.LDhXn3PJNoWKkOasR9pp8qELtWq+Bu0xKqv4cpCOzao9oP5.Q5x3LYyp6+M0G1CBxOHBTS1t6LIFB9NAAuRjcCEVGIVD54mWDYE2qIgoTUNCtNyFoVRJdNGm4DiWYci8RiiAWTV9.uJB1L.yU1myIsiRSF8.rCYqF3e3o47ce84hhrWkamda9NEwA7R8kIMIfVKiaCYzvdP8xKfaQ8pkjTDs5bzXA.lLpVcvY9j8IJkgKFFunLdFocVYdCrZNEUxa4yc+zm61p0LDrFhGDRGiK35r78F4NyBddL77XlbZ1OjRhMqeWC6tGpyhPrEYwnCzqql2GULMS71XASfMOBnFvmu1wBlURvd6zPwF78xA4q6PJ+R4nLxPWuFu7FpVkmtor67Rhw.RvDCEwtdQPsHylHvzPUThJqNfdUU.Pmf1H6TO5sxy6dFN4Lie2lwCn29xgdQKe9usUasjV5T2FW.2mck5m2SFoQWQ0uQLM8oqnZvuuP.2dy0WjBEjcmVzvg0JKycgPeL0IF6mO9sYnGOc7EzXy8PTQnm0pMB6L+FgM6S2WyNFJJ3GAWl7xHJedcuakQoPSyKkgJPUopk4ml0x7fPFzofEC5L9INeM+hNVJ7Z9fMVOTa6Vise6QXOGXa6YfA.XDMVxv0t89zqgGZR2DeCm8oIWIEQV1+jhD.nKdY1Scni4gPxmjwu7UPqBpH+ybpzws0slgeh4faXAxQES7C+idinrKGU9zZ+6zdYXTCno87EWl+.aejy5cVess2p6Zaz0B6AvPP2ms0la2cqtcLDzUuGpXhk9WK47llttsvsxAPUocSkRAGZVUFmRWIWxA2FQ3IPFUxNIfSRGiZLjDlTphtK65MGyrSlwmPhmV8JhJmFNKfmQ+B2NqVXDbWZ8g3DJVdndY6SCox4Ha.T3zeztjXSAGRtVfsYiOVbAJJAgo3JlkFF1Gdjnb4IUHor05Q.OFP2UDCrUE4uHcrlZQy5plRO9OhYJm.4YBPvYv7ttq1dso9rx637vzmqhAVtZGn9Ww5LKBqT2WEVoQ1Iha5CsJBG.dn1UP26JR4A3J8LsfigmiPyPSKoLqbZI477LRadGVln3P6StuhLFmR+08LNk926U8Tp0ec5SoVG06cHRcmWj9me+6ZjZnizOOKRzfSydhNUz9PmhKhLB4ODaDRn9xTkfhmNj8D8fm3GcitlN10xQbcYHcMD0SbXY+qb9JR3vOC+Wy+LMVn9UksfOnJwn2wTP8oNl8GaRPAFn86udJz16uMCA865UC.SNVfMtRhmjeuzCAT+BmYZobdHyZx+WQ1ScL60atz0a9wBTy95s9XmiEAogDY021F9NIyD.2ST4UbguFKnpmbh46r7GsWA2CEhehSelzeT8XboZvH1nx6ALl8hK+oNGLbH0WVBvG6b3e58yaoz5DQJ1lxwDYLCRYbf6ZF.cB3Sgny4zPryO6kvlqziWEGiLv.JOPM3+BexD1AGamIrStPqwD+Xw24q6NCe0nefZF.Sb0qQtgyw3X2Z5oaLKf8c99Uc0LF1cQMbsE0v0WTC2XQMbyE0vsVTCe18aH9hz2IUJFqO1XYcb+CTcOZae.m.YfprUq+mtBtyT
-
@ulrik this is a sick feature. I might get brave/crazy and add this so late in development of my current project. lol.
-
@ulrik thanks so much!
…I will check this out in the morning when I get back to my computer
-
@ulrik works perfectly now!! now it's got my wheels turning in a different way...question is it possible to have buttons that select the items in the viewport? example... Button 1 -> Viewport Item 1 ...Button 2 -> Viewport Item 2....Button 3 -> Viewport Item 3....Etc etc...My thought is that end user could create the setlist...and as well as clicking the items in the list...they could also be triggered by a button press...so I could in theory assign a Midi CC to that button and be able to load that preset from a midi controller....Works really good in a live scenario when you are playing with both hands...it's quicker to just tap a button on a controller or even assign it to a footswitch...Ive done this for years in live performance using apps like MainStage...and this could def open up a ton of new use cases and possibilities hijacking the preset system in this way
-
@ulrik I think I figured it out!! had to dig and figure out that I could do a control callback on the viewport and setValue on the item list...It may be a bit crude but it works...yall feel free to check my work and see if I need to clean something up!
HiseSnippet 2282.3ocwYstbaabEFP1PIjNwIosO.Hb5OnZzHyaR9RF2p6MZRjEGQY6NipZ5RfkhqE3tX.VHINdTlL8IHOB4G8AoOE828QnuAsmyt.fKIA0EF4IziGArmaemu8rWQ6HgGMNVDYYW9nggTK6OwoyPtr+V8ILt0daaY+4NsinwToaGpLfEKs1bXHINl5aYa+f+LpkcoGZo98e+SaRBHbO5nlrrdif4Q+N1.lbTqsW+aYAA6R7oGwFXncq02ySv2RDHR.D8.mZVgDuyHmReEAUaAGqugD22x9O3znQOumUq1yZ1b0ZDRSeBoUcZymS6sVOuUq87Z9cWsF7u0rrWbGelTD0QRjzXK6GtoveXm9hK35.7FVLqa.EeotUGHx5l2UD3ioH1p0V8YA9synpXKvKsGQbOPSb+Nm8Y9r71MIPTf6HKLIP6EFGdOXL3U2Dd0LfWAPx1.ROTCouvoiWDKTNRBhmG4rGWRi5Qf9ISnn00ZgG+YNaI.M3xUFPNitaD7RtEUqWqVskcWqVsk95xkgNqXoqt9XyHwEwzH2W5lY8oT4VhAgBN7R0JioUEvZswPU02AUUuo8LMLWCznxO4IkHAAtIXnBUtL1kD6FRj8iKGQOMqQzDvk6vOkwonGeMXgFCnnpo9JF3dpuKVeiE2tjnHxP2pBdvvTO4xgZu3kT9N0XvuGeRp85AEtnef5zzjZivvsIRBn2tr.ZmgwR5.DCpppnpFMlpIhFFO.fpauDtmjI3twjyocxPa42WtjaFdck8otYQtG3LWoP0VVb6ohCXQfviD3J59N.JuuRJ7q7hrD4puNWGkadYlGTcAXIFB0pYFthOQhcBkTZuxEQLI8ftui5IqBgPIPixHJwWCRM8pbNg66lDBtHG+Jt7bF8hPQjDrDZpyntmqJfRLT.YjBB0XzRuHwfBIl4HmMoRU5GHH9aDml+nFJ730m5clKqmJrpWFAG5kviwJ0.E3B4xpN4wnCnmzmEeVYTipeoJPrXEhVZoxkfbtzX0EPXAJPlDwgmtpHLfHlAiQ3o01X2.TkJgomvVG5BchCh0waCTCHdp+h8oqjBq7XmO.vPHhg7AoXiUqn7YkkyxpUdmfwqV4uxqrzRJbdkZvC8RpWBTNPjtLNSVd79+x5A699YCDApIs2cpBCAeCe+iDoKQgyiDIBp5kMIxxtmSBRnpZFLOSeSkRJdNCmYDS0QyarURTD3hQSefqEAcFf4J6y3jUBSh6eKrCYqR3+wQyY895wE4UuJ2NY27UJhC3khmlzj.prD1MjRCaAyW1EVFsZgjjhnUiiFH.vjR0pANylrOToLrxvf4kwSIsiGU2.YyaPkptzIte4KcqTYJBVCwcBnCvDtHK+fQtSkvyhgmEyjQydATRj472Evtag5LODadUL5.cdU9lnhIYhqiELA1rHfB.eVtiSXNVA10SC4cv2HGjk2AT9ox9ojgd9ZbwaX1prxMkcmLhXLfDzPOQja0PXtHyMQfkgpnDNZ1AzqpI.zEnkRG0idaz38pFN4XimWgw8oWdPupgKcxWUYEsjJ5R2Rcg0yNS83MTQZrqnh6Hlj9T8BSxxSpTt8Ex0fRwBXAovHFBAk.2WTw8qbkQ3dC0ZpW59IOIsHvcyDoDLzsfvqPIpzlRd8qqa1E9YTsiupaD+M1ZO5YBvcmNsXu9D9oT+poBUz6LY2LXcM76DHunMwYpWi6yLr98VF13lyvF2xLr48YF13dKCadyYXyaYF159LCadukgst4Lr0sLCW89LCacqyPCr7JAbrBtdG9vTItSJpWuBkkh6.3.VEIFuognqyvp7jAcoQlS3gJBmld7in6L6inadCBd5tLCEE78fc4dPHkOq6UvJseFNN+honBTUpNL+iSOLem.FbDFKFbl8Ec9Vd25VJ7ZdkKV2VaabGrUOMtx1O0wXxue4t3d.EM+k6hVE3hWuGdvP7xUR6XfNqPZjjg0A1aSOm4Q0W0RImsowmIEgV1OJeDJ7rL8tgzgdWXGBRF+zifyyo.vm4L10hXcYd3+w2u9PSrbAyW1GJ9rqsfkUeJ6z9R7s914EMZfLoG6dZ10o8INsp2p4yeZilq1vBOflgfFO6oq87FOsQcCAMz0wJFXg+8BN3.8JX4bGXKiZRrxKfU9SnKmIYmKCI7XXTU7FwfSRFfZziDDORE8UfTr43n63o7IL3KcKDlhF0LLe.tApW3VuVtQvAcJNDGRw8tUrrsoAT4Lj0A1UqW+MIQlB1kbt.uCD7RKyQwHPXJdLyRBBZSj8yjGOFIklq6A7nOcSQDvViI+UICzTKZVCUS52eKVgbHTeI.AGqlYs1JMm32x2w1glOQECbp6MfMmlmmoQX4h9StUZjcn3h1v43gB+aqc4z8lhDtOloGqEruHJsGZRIipJmTRFOOkzxWgCdxGrt3MMQ6nQmV+dyQm+v5oiNyZ3usd1HzrV1a86PjZLqH8S+3cMRkzQ52jFIp+aRutMUzdjS9hxlgzxZnY7ym54eZaN0yZvaIwTzb85Y3QI2iqm9QO2g5ZfrrWyocLIX.dXf1LBWTtiLwmIbeMbPBvYkeKIZPtDxoT8yi027wybN7G6XdqFyh49Y4DL25+8oXt+35EjAw6KvqafDMLaQ6aCn9sNScQ.FH6e08WOj8XGySna.J2nOzf5itkanvXQvPCLAqHlWI11xrRrJ7ljdI9ryAuZm4Hnli39oKtyA8n2dvbDzlFA8m+gBCZFWezTr+1qqC9G4bz2b3NySN2xH7+m+wbF9Ec18fWenk0ze7oO2YegeR.QN92BC+hgoBf8IL1GfB+HSvpdxgleQw6sOP1sEhegSalzqewXbgBvHr8vODXL8yJ9oN6zqG0SNBfOzY2+xGlugn0ghDb6o6SjQLn3vA1qQGXmfdTH5bNM.O8i8B3dq0uWCeGYfNTtu5k+G7KUXc7c6Tg0yDZMf3EI9dO8lywOb4GqZAvDW8QdK4rO9taAGrX.ym88ddi6poLrw7ZXy40vVyqgqNuFt17Z3SmWCe1MaH9Yt2HQJFnG1XYse6cTmdv1dGNAp.UUqV+e34cyML