Custom User Favorites or “Setlist” mode
-
Curious as to whether anyone has successfully created or experimented with a custom favorites mode or something akin to a “setlist” feature where the end user could gather a set of presets into a “setlist” to use for live playing/performance? The preset favorites function is a bit too clunky for this IMO and experience …ideally it could be in a viewport…I dug around here on the forum and haven’t really seen anything close to what I’m thinking or where anyone has attempted something like that…so curious if it can be done
-
@johnmike What have you tried already?
You can do something like this with the stock Preset Browser. You can save presets into a new Bank called "Setlist" > "Setlist Name" / Preset1, Preset2, etc...
Unless you want it to be in an entirely different panel than your factory presets, you're gonna have to roll that one yourself.
There are a few examples of custom preset browsers on the forum if you search. Could give you an idea of how to start.
You could create a combobox situation with two comboboxes where one combobox has the "Setlist Name" and the other contains the names of the "Setlist Presets", Setlist Name calls on different lists to populate in "Setlist Presets" which you'd have to write to some sort of file object and you just load the presets by getting the names from the "Setlist Presets" name on selection.
@johnmike said in Custom User Favorites or “Setlist” mode:
so curious if it can be done
Short answer. Yes.
-
@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