HISE Logo Forum
    • Categories
    • Register
    • Login

    A couple of expansion questions

    Scheduled Pinned Locked Moved General Questions
    expansionspaint routinepreset browser
    30 Posts 4 Posters 327 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • d.healeyD
      d.healey @rzrsharpeprod
      last edited by

      @rzrsharpeprod said in A couple of expansion questions:

      but is it possible to have them arranged as tiles in a grid formation on this page rather than just a list going down?

      Yep, I do this for Rhapsody using child panels

      @rzrsharpeprod said in A couple of expansion questions:

      Do I need to build all variations into the plugin itself

      This. There is no method to contain this in the expansions.

      Libre Wave - Freedom respecting instruments and effects
      My Patreon - HISE tutorials
      YouTube Channel - Public HISE tutorials

      R 2 Replies Last reply Reply Quote 1
      • R
        rzrsharpeprod @d.healey
        last edited by

        @d-healey said in A couple of expansion questions:

        Yep, I do this for Rhapsody using child panels

        Ah ok so at least it is possible, that saves a difficult conversation. I just need to figure out how to make it work now.

        @d-healey said in A couple of expansion questions:

        This. There is no method to contain this in the expansions.

        Ok so I would just build all the known variations at the time of build including all of the different backgrounds etc and a way to switch between the UI colour schemes and then if further expansions are created that aren't in the original build then you just build an updated plugin with those newer variations/backgrounds included?

        d.healeyD R 2 Replies Last reply Reply Quote 0
        • d.healeyD
          d.healey @rzrsharpeprod
          last edited by

          @rzrsharpeprod Yes that sounds about right. I would have a hidden knob on the UI, and the value of the knob determines the UI/background to show. Then you can have it save the knob's value in the preset, so each time you save a preset for the expansion it will save the knob value.

          Libre Wave - Freedom respecting instruments and effects
          My Patreon - HISE tutorials
          YouTube Channel - Public HISE tutorials

          ChazroxC griffinboyG 2 Replies Last reply Reply Quote 2
          • ChazroxC
            Chazrox @d.healey
            last edited by

            @d-healey I like this trick. 👍 Im gonna use this for some general theme changes! Cool tip!

            1 Reply Last reply Reply Quote 2
            • R
              rzrsharpeprod @rzrsharpeprod
              last edited by

              @d-healey said in A couple of expansion questions:

              @rzrsharpeprod Yes that sounds about right. I would have a hidden knob on the UI, and the value of the knob determines the UI/background to show. Then you can have it save the knob's value in the preset, so each time you save a preset for the expansion it will save the knob value.

              Yes that's exactly what I was thinking to do as it can be recalled easily with each preset and I've done something similar a few times before and it worked well, thankyou

              1 Reply Last reply Reply Quote 0
              • R
                rzrsharpeprod @d.healey
                last edited by

                @d-healey said in A couple of expansion questions:

                Yep, I do this for Rhapsody using child panels

                @d-healey how do you get the child panels to dynamically load in a grid inside a larger panel?
                I am struggling with child panels in general tbh.

                Presumably you can also use images for the expansion load like you can with the preset browser? Is that using the same method with the icon.png inside each expansion?

                d.healeyD 1 Reply Last reply Reply Quote 0
                • griffinboyG
                  griffinboy @d.healey
                  last edited by

                  @d-healey

                  I've never done expansions but I was thinking any it. I thought that the most robust way would be to create a modular system in the first place that uses JSON to build parts of the UI?

                  Do expansions allow you to include things like json files? Or can you only expand with audio files and presets

                  1 Reply Last reply Reply Quote 0
                  • d.healeyD
                    d.healey @rzrsharpeprod
                    last edited by

                    @rzrsharpeprod said in A couple of expansion questions:

                    how do you get the child panels to dynamically load in a grid inside a larger panel?

                    I have a loop that goes over all of the installed expansions. For each one it create a child panel within the parent panel. Once all the children are created I have another function that arranges them into a grid.

                    The parent panel is within a viewport, and I adjust the height of the parent based on the number of expansions so it can display them all.

                    All the code for Rhapsody is on Codeberg if you want to see it.

                    @griffinboy said in A couple of expansion questions:

                    Do expansions allow you to include things like json files?

                    Yes you can include them in the expansions AdditionalSourceCode folder.

                    Libre Wave - Freedom respecting instruments and effects
                    My Patreon - HISE tutorials
                    YouTube Channel - Public HISE tutorials

                    R 1 Reply Last reply Reply Quote 1
                    • R
                      rzrsharpeprod @d.healey
                      last edited by

                      @d-healey Thankyou I will have a look at Codeberg and see if I can figure it out.

                      I have another question regarding expansions. I have found several topics on it here but can't seem to find a definitive answer.

                      Can you/how can you load a preset from an expansion via code?

                      Whenever I have used expansions before it is using at least 2 columns so you can choose the expansion either via the name or image in column 1 and then the corresponding preset from column 2.
                      In this project it is required that only 1 column showing the presets is used as the expansion is selected on a different page (hence my grid related questions) and it is proving difficult. It would be so much easier if I could just choose the expansion(s) from column 1...but I can't.

                      The main issue is I need to load a preset from the selected expansion in order to force the controls, BG etc to load correctly as each expansion has it's own colour scheme and BG. These are all controlled by if elses & buttons that are saved in each preset to allow the correct things to show.

                      So back to my question - Can you/how can you load a preset from an expansion via code? This will just allow me to have a 'default' preset when you load each expansions which I think is fine.
                      Or is there a better way to achieve this?

                      d.healeyD 1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @rzrsharpeprod
                        last edited by

                        @rzrsharpeprod said in A couple of expansion questions:

                        Can you/how can you load a preset from an expansion via code?

                        Engine.loadUserPreset() should do it.

                        You could also load the expansion when the user selects it in the grid, this will automatically populate the preset browser, then they can select a preset.

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

                        R 2 Replies Last reply Reply Quote 0
                        • R
                          rzrsharpeprod @d.healey
                          last edited by

                          @d-healey I don't think it finds it because it is in the expansions rather than the standard presets folder.
                          I have used load preset before for none expansion projects and it works fine but I didn't think it worked with expansions.
                          When I tried it before and just now to double check I get error
                          "...UserPresets\BASS Dean.preset doesn't exist"

                          I agree that it shoule work with the grid but I genuinely have no idea where to start with the grid, the child panels or making them the expansions.

                          d.healeyD 1 Reply Last reply Reply Quote 0
                          • d.healeyD
                            d.healey @rzrsharpeprod
                            last edited by

                            @rzrsharpeprod said in A couple of expansion questions:

                            I don't think it finds it because it is in the expansions rather than the standard presets folder.

                            If I remember correctly you need to place the expansion wildcard before the file path. I think there might be a function to provide the wildcard too - check the API browser.

                            Libre Wave - Freedom respecting instruments and effects
                            My Patreon - HISE tutorials
                            YouTube Channel - Public HISE tutorials

                            R 1 Reply Last reply Reply Quote 0
                            • R
                              rzrsharpeprod @d.healey
                              last edited by

                              @d-healey thankyou I'll have a look when I get home later. The ironic thing is this was meant to be a quick fix placeholder so I could test some things before biting the bullet and actually doing it correctly via the grid.

                              Regarding the grid, am I best to look at your tile.js in rhapsody and pull it apart to try and reverse engineer it would you say?

                              d.healeyD 1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey @rzrsharpeprod
                                last edited by

                                @rzrsharpeprod said in A couple of expansion questions:

                                Regarding the grid, am I best to look at your tile.js in rhapsody and pull it apart to try and reverse engineer it would you say?

                                There's probably some stuff in there you can reverse engineer, but it's more for the overall concept. I'm not using the same expansion system as you and I'm using a full preset browser, so trying to just copy what I've got will probably lead you down a dead end.

                                Break the problem down into pieces.

                                Make a new project and figure out how to make a grid with child panels. Once you've got that down you can start to incorporate it into your real project.

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                R 1 Reply Last reply Reply Quote 0
                                • R
                                  rzrsharpeprod @d.healey
                                  last edited by

                                  @d-healey That's fair and good advice. I'll give it a go and will invariably come back with questions...

                                  Just going back to the load expansion preset wildcard, is that the {EXP:: wildcard or another one?

                                  d.healeyD 1 Reply Last reply Reply Quote 0
                                  • R
                                    rzrsharpeprod @d.healey
                                    last edited by

                                    @d-healey said in A couple of expansion questions:

                                    @rzrsharpeprod said in A couple of expansion questions:

                                    Can you/how can you load a preset from an expansion via code?

                                    Engine.loadUserPreset() should do it.

                                    You could also load the expansion when the user selects it in the grid, this will automatically populate the preset browser, then they can select a preset.

                                    @d-healey am I misunderstanding or is this the same problem here

                                    Link Preview Image
                                    Engine.loadUserPreset for expansions?

                                    Does Engine.loadUserPreset work with expansions? When I use a relative path, it adds "User Presets" at the beginning. If I use an object from full path, it c...

                                    favicon

                                    Forum (forum.hise.audio)

                                    there appears to be no resolution to it if so?

                                    Honestly I am at my wits end with all of this, I have been trying on and off for days and I am no further forward but a lot more frustrated. My project has ground to a halt and I don't know how to get it moving again. I know you said break it down into pieces but I don't know where to start so I can't.

                                    I genuinely have no clue where to start building the grid as child panels seem like a mystery and I can't see much documentation on them. I can't even figure out how to build the grid, nevermind how to make the child panels do anything and look a particular way etc.

                                    At this point I can't even make a regular button load a preset from an expansion. I can get it to load an expansion so the presets are showing in the preset browser but I can't get it to load a preset from that expansion. This means it just looks like the previous preset until you click a new one which is wrong as it has the background and controls from whatever expansion was last selected until a use clicks the new preset.
                                    I just want it to change the paint routine and background when you load the expansion. The only way I can see (or know) to do this is loading a preset but I can't get one to load without it being clicked on it from the preset browser.
                                    There must be a way? It's easy with regular presets using 'Engine.loadUserPreset()' but expansions just seem to be overly complicated or don't have the same functions as 'regular' presets so I can't get it to load one.

                                    It's so frustrating as it seems like a relatively simple thing but I am completely unable to find a way to do it.

                                    1 Reply Last reply Reply Quote 0
                                    • d.healeyD
                                      d.healey @rzrsharpeprod
                                      last edited by

                                      @rzrsharpeprod said in A couple of expansion questions:

                                      there appears to be no resolution to it if so?

                                      Ah yeah, I forgot about that. See if there is a bug report on github, if not, make one and link to that thread.

                                      @rzrsharpeprod said in A couple of expansion questions:

                                      I know you said break it down into pieces but I don't know where to start so I can't.

                                      Make a new project. Add a panel. Add a function that loops from 0 to 20 and adds child panels to the panel. When you've done that post the snippet here.

                                      Libre Wave - Freedom respecting instruments and effects
                                      My Patreon - HISE tutorials
                                      YouTube Channel - Public HISE tutorials

                                      R 2 Replies Last reply Reply Quote 0
                                      • R
                                        rzrsharpeprod @d.healey
                                        last edited by rzrsharpeprod

                                        @d-healey said in A couple of expansion questions:

                                        Make a new project. Add a panel. Add a function that loops from 0 to 20 and adds child panels to the panel. When you've done that post the snippet here.

                                        I'm not entirely sure if this is what you meant as it only creates the 1 child as far as I can tell - where do child panels show up, in the scriptwatch table?

                                        The child auto creates so you will need to delete the panel and add it back in as Panel1

                                        HiseSnippet 920.3ocsVE0aaaCDlxNpnVaEXEXOtGH7SxHoNxcscCvaXtwIdvnKoBycc6sBVJZahHQJPQ2Fit7ea+j1+f1ijxRxs1ECFq7ACy669nu638czwJIkUTHUHuNuXcNC4809yVKzKGujvEnomi79N+XhfkhyIJlPiIhDLcIOMA+mSiQmsNmTTvRPdds+UCCuNGgrq+8WNijRDTVsID5kRNk8a7Ltt1Z7nmwSSmPRXufm0v6GMZJUJFKSkqfnqseDJmPulrfcEw3VKej2ctHgqkpYZhlUf7N5LYx5YKkuU37+k7B9qSYlMCPyfCxYdhLMwDwFqnwlTIdSUn.AmRbcMosql7s9WxS3U1qqMeiE.WynY8vq01gW6sBuAMCunFg2NBIuFgzQtP599ynJdttFwDOek+TglolSfxdyPw4Kp0cZ6OVBdHz8yHWylnfMULBeRTzIX3idCCBfRegF+FhBau8Gf+Y7FlKX5wxrbo.1D10A20v4zScMF4FSAbQJWvvyWInZtTfoJFTGbImwghvdAuKnyomlqj4LklyJBvvJURIo3ahkEvu4iGhsqFHq2Kxa4I5k.zCiFtMvRFewRcMhEZtTgC4fQvFG+SNP9wG2yh9t.b4xcD1bxz4AD5VmDcwGi4C+HeoUvfyt5SeRRRMqPS0ZCmZu6WvfBpMK5dhKa5Mbu94RJvQ2W1+QFCcq5eWtRCWGgatNBWzqx85b0rVzeNnGeZZZXzMSfUTjoinBtx2aKisaCtEZW9zK2gAUW8RwURM64B2MN3O9iglOemXlVNkLMko1IrYfg5yQLTrJ60L0IPib5JVkifJZaoo+9klMmbPcJfFNJESEb8yyYh8MOAUJafu8GSOmnIF8bos3pNev14r2.CGcp6N9myJtVKys9Vp0f4cZK581n8MUZDGT320Mid.5l54myFstZynYirsSUF9m+djqsoxBVMB8oiYfAbxjUoD81S8Li5KAf58ViZLiSDEb85lOE7+1nv+qg388i4Z5xcGis1QLB2JeIhwxGPtm+Eymyn55.7H+I+0WlWKPNo9hKIZEG5G7uZU1L3MTJHOIBi1Dr40xzY51GY1a6XXhD6l2CqRvAl8dkfC1.hxHTk7UTmJy7D0csVfXRXecti+kl83AHqxC34G0OBkAuV9JJ0j9O.DK6lyCO.Ne+Av4QG.mGe.bdxAv4GN.N+3mki4Op7zUZYlSN.FhuvNNxy6BAA5rrcgnOHnAytA
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          rzrsharpeprod @d.healey
                                          last edited by rzrsharpeprod

                                          @d-healey alternatively this is probably more what you were meaning

                                          HiseSnippet 1195.3ocsV08aaaCDmJIpnRaEXEXOtGHxSxHNIxoYcaHqXMe1YrjTi3r1DTTTvHQaQDYRCJ5ZKTj21ev6+fsijxVxNJcEFq9Aae286Nd738UGoHhlkIjHGuKyGRQNeqa2btJ4vDBiiZeDx4Gb6P3zT7PhjxUXBOFGkvRiwuscGzA4CIYYzXjiypuRqgi2ZHym+92NfjR3QzRVHzaDrH5orALUI2Nu7OXoomPhoWxFTA8turcjfenHULB7tUcCQCIQ2R5SOmngshKx4QGGyTBYWEQQyPNqcfHNuahXL2h+MrL1MoTMQKTWvPV1mHRi0drlK5P8UoyznPFBrRmxXxp1Xx26dFKlMieYr46LBvkZTMd3rx7t2py4dsp5dgUbuZbImJtzZVW5otcijrgpRIZ+4abayUTYOBD1q5JVrnU17QtGJ.Db0VCH2ROQBDyzH3WBCah2MLrwd99PnOSg+HQhMu9svu.OUy9T0ghACEbfHXcq3005r811DigZV9LdJiSw8FwiTLAGGIoPbvd4z.xBZ3+IeL7omPhCXvIDtGlg+0Wf2Q+mM1ngQpESpHhjZs79RIIGPaOYi6LynmxxTAfu3YwmR48UI.1RE2xxaFDiDcJEfZcCw53MvKBRR+HSLJyVIT0buq3H1r06qG89v0Fj36s81XVObkHTPVCLIEDGmioS.G22C.DXMXCeuO46sfAuRezUMt9x+pTwMjzNhLlNLek41ufdW+eq200o2aqSuS0PNPLhGmED13c6796q2u+En2yz5cmIrnRnXgj0mwwCKbGSNgleOlDxCqlW4AoNzGJ5raX82953+VSFWsNen02l9fNox84JH6XlEl8jmWAw0y3Nd5IaISlRNWtWYlLINtLS17d36YfrUFEpzlrdS7DM2J7xAd4KvaLKVk.7Gu.+DJqehBDjrf.Echl8rJg4D2A50otPLRAEyASKlC5WjepaPPfafJgkc+G48JPLyxsp.s3bMf5qOIaq9.6O.DIMuPXOX.wEZiRiufFoH79oz.BtI94On1wD4s2jNhV.HVRFeeK.FnIdmGzFiSXJZozSD59cmAemQgRecHqUXE6eIbcBJupMwDsv6fuzMvty+Nnq586Atm+rNjB94BE80bSiQO.OdQQ85UqLcmYoHMkJqUrdtp7yoX.ezfanxlP+dcHaJPXXy7Svbe3IXUGvFYGTTAnf2lyTudHk+PicQESWf+8msOhnH5wdE7.bCoRES6BNGAEYQT6PPO2inY2pDCMXKFIAqEnLRexzQj5HMhACBercUlVnIUWJIuJgo3AtoN+0pHjshQSIczapbuovv7eQ7nThZ9kBzaBUH.hyyMIVOskC83xqtoz+aaJ7k5hO0sCSEkTuOtRM9H7Z70vGK1u5ItG2qGTVV5fq4dxUecVlBY6k0+LhRxf7.2yGMnKTtGAkkDttlT+duhNizRGpo0QftTdrg3efOEBaoocJD1ZpPz.RjT7gHa0kdCtGa3.9D2r7pm6YZZbKjohCzyMbqPz.XYxODEou9aBEI0qyNKgNOaIzY2kPmebIz44KgN+zRnyO+Y0QuG+9iThA1xAfQmiMsgbbNlSfLKSVH5eA7MxxhA
                                          

                                          I don't really understand child panels. Ultimately will these be 'clickable' and be able to load the expansions as well as have their own individual images?

                                          d.healeyD 1 Reply Last reply Reply Quote 0
                                          • d.healeyD
                                            d.healey @rzrsharpeprod
                                            last edited by

                                            @rzrsharpeprod said in A couple of expansion questions:

                                            I don't really understand child panels.

                                            Baby steps.

                                            I modified your first snippet, study it, play with the constants at the top.

                                            HiseSnippet 1237.3ocsVssaaaCFlJIZq1aEXoXW1KHB1.ji8RrShSJP1vbhygZrXGi3zzdW.MEUDQjHEjnSrQQ2dQ1E8QbuAa+TGrjcb2JLV8EBl+G+9OR1OTRYQQxPjQ4qmDvPFeq4fIBkaaWBWf5bBx3kl8IBlGNfDxDJLQXiotbOa7a6zGc7j.RTDyFYXr54ZMLJsFJ92e8qGS7HBJKmDBcijSYWv84pbp8a8abOuyH1rq49EjduVcnRQaombDftUMqiBHz6I2w5QzhshI50jHWjwlljcZv1wt4vcO3flNr5MaVm0rwA0I66TeOamWseycGNrgMaejwWcpMWICGnHJVDxXsik1SF3JeTj3fa3Q7gdL8gFnAfmSHelzyVGhZpn15XueVZKBAVoedRb0jj32a1kaymROOY9cwLv4ZTLAZrxrva0YfWihvqdA3s.HYT.Rqk.o0MGPC4ApbNZ77MlcDJVnCApSEgRhrnU93ZlskfDB0V9j6YmEBGlpg090qWCCepbX4xPsJRg68lt2d565eTuActr2.7u.bODu813qc4Q3Gg5LdHCqbYXwH+grPrzAyFGPDQbP8B1n8kWn0duXk6MUVpzaj+TA6dzUm2oGHViDmL.ZPXfCTOxXhLYiaXCkOFkAwGHg3.g24gbaP0rn6NlpszOPJfCVajxeCcfs81Is6A5ofxbgGWvvNiDTEfYLMjAEqjJfVfHqJkeOF9UV+wSRIdPbaqbAeYkZVsydqllUE7OkFEUvamG3YDOrfQfD1UPT.loKQ4tEkw8rlKamagJE0zkwuyUAJFiiC0XKlqiLDawA5P1ii+44pc.spUqDK36i+laPZ.nTVrPrsyidqTGmKKWXyFqicN9GKBuRkR3q4kVGqBBEK8lIHsRQJoYobEmjkIb7jxPv7EhdPdqznt5z7a0YRpkR9RC1Jho5Ki35po03Z3I0R7dsz7l1kenboxkxBXPdqMR3sQsDH3SFm5uZSqSahmCAZPkwrJtQkJfk+P4m1P4wHgwYTXcqtYpbo3B0XHUhKz.kmzufGorpTAxLi2Jj4KePOl52OdcsUhSlynwSKWEKJLe.CkE5vggqm1Re3T3IE8jJ1koHCrMddVNNKjmdPKT54wBWHa8t+v+MEsR1XTCle8FwlJHrea1klle5klE2oSSl6KHnTzQvUWFvDepM8nzkE5EronBDUEud8EoqWY12vYOFHCUHNrIsj4CAJcICEC6h2EhdSmSHJRlw.6B9JfEp35vv3D1CvckI6tKYdBK5dkLHV1zsTHiu9yz0iycamVSJdHtSeJgV+Qqjd1hThn5p1wjPXEN8dAjKxMvOzZQ344Y2znadRgRZiaQnfP.TLMVG9yrv3i+97v30+YqjWeTvY4gG5oW1AWyJsG4QTyd2q9EJoLfdqYtvSeoFbKjZRwWv7+1ExetPbcy9bE0cwXbkEfQn64KAFSeFyyMO0wgQU4.bMyyd2Wl2rftRNRwE2AKTC4PahIbq+.3oeTXSDQnWCo6VVQOElbtt9rNCLfIriO72vuTlMzmMRY1HiIxm.cy2RSlc0OT5YwT.LIheTYIyt5y3FOcb0Gd21sT5rl5IJtyxp3tKqh6srJ1bYUb+kUwCVVEe0+sh5mUezHkzOYrAg51+z30qFFmJHPGXb2J5e.62gmW.
                                            

                                            @rzrsharpeprod said in A couple of expansion questions:

                                            Ultimately will these be 'clickable' and be able to load the expansions as well as have their own individual images?

                                            Yes, child panels are just like a normal panel. You can add mouse callbacks and paint routines to them.

                                            Libre Wave - Freedom respecting instruments and effects
                                            My Patreon - HISE tutorials
                                            YouTube Channel - Public HISE tutorials

                                            R 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            28

                                            Online

                                            1.9k

                                            Users

                                            12.4k

                                            Topics

                                            107.7k

                                            Posts