Forum
    • Categories
    • Register
    • Login

    Custom browser - custom preset file format???

    Scheduled Pinned Locked Moved General Questions
    28 Posts 6 Posters 842 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.
    • Christoph HartC
      Christoph Hart @Orvillain
      last edited by

      @Orvillain said in Custom browser - custom preset file format???:

      and no-one else really seems to have dove into this.

      I have :)

      OrvillainO 1 Reply Last reply Reply Quote 1
      • OrvillainO
        Orvillain
        last edited by

        Battling a little with extension issues however.

        @Christoph-Hart When saving a user preset am I stuck with the .preset extension??

        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
        Crafting sound at every level. From strings to signal paths, samples to systems.

        1 Reply Last reply Reply Quote 0
        • OrvillainO
          Orvillain @Christoph Hart
          last edited by

          @Christoph-Hart said in Custom browser - custom preset file format???:

          @Orvillain said in Custom browser - custom preset file format???:

          and no-one else really seems to have dove into this.

          I have :)

          No one else with the time to do a tutorial example ;-)

          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
          Crafting sound at every level. From strings to signal paths, samples to systems.

          LindonL 1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @Orvillain
            last edited by Lindon

            @Orvillain said in Custom browser - custom preset file format???:

            and no-one else really seems to have dove into this.

            I have too... :)

            HISE Development for hire.
            www.channelrobot.com

            1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @Orvillain
              last edited by

              @Orvillain said in Custom browser - custom preset file format???:

              No one else with the time to do a tutorial example ;-)

              Seemed pretty trivial really - its just taking the values you have assigned to params of a given FX and encoding those with the FX name in a json object...

              HISE Development for hire.
              www.channelrobot.com

              OrvillainO 1 Reply Last reply Reply Quote 0
              • OrvillainO
                Orvillain @Lindon
                last edited by

                @Lindon said in Custom browser - custom preset file format???:

                @Orvillain said in Custom browser - custom preset file format???:

                No one else with the time to do a tutorial example ;-)

                Seemed pretty trivial really - its just taking the values you have assigned to params of a given FX and encoding those with the FX name in a json object...

                Cool, thanks for the help.

                Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                Crafting sound at every level. From strings to signal paths, samples to systems.

                1 Reply Last reply Reply Quote 0
                • OrvillainO
                  Orvillain
                  last edited by

                  Here's a handy line:

                          FileSystem.getFolder(FileSystem.UserPresets).getChildFile("FXChains").getChildFile(PluginSharedData.lastSavedFXChainFileName).move(FileSystem.getFolder(FileSystem.UserPresets).getChildFile("FXChains").getChildFile(PluginSharedData.lastSavedFXChainFileName.replace(".preset", "")));
                  

                  I've got this in the post save callback. It's job is to take the FXchain file I just saved, and rename it to take off the .preset extension that HISE automatically adds whenever you use Engine.saveUserPreset command.

                  So now I can save two types of user preset: a global state preset, with a .preset extension... and an fxchain preset that collects module information for each of my FX slots, UI parameters, and bundles it all up into a .fxchain preset.

                  Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                  Crafting sound at every level. From strings to signal paths, samples to systems.

                  David HealeyD 1 Reply Last reply Reply Quote 0
                  • David HealeyD
                    David Healey @Orvillain
                    last edited by

                    @Orvillain You can simplify your chain by including multiple directory levels in the .getChildFile calls.

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - HISE tutorials

                    OrvillainO 1 Reply Last reply Reply Quote 0
                    • OrvillainO
                      Orvillain @David Healey
                      last edited by Orvillain

                      @David-Healey said in Custom browser - custom preset file format???:

                      @Orvillain You can simplify your chain by including multiple directory levels in the .getChildFile calls.

                      Ohh, more like this I guess?

                      const base = FileSystem.getFolder(FileSystem.UserPresets);
                      
                      base.getChildFile("FXChains/" + PluginSharedData.lastSavedFXChainFileName)
                          .move(
                              base.getChildFile(
                                  "FXChains/" +
                                  PluginSharedData.lastSavedFXChainFileName.replace(".preset", "")
                              )
                          );
                      
                      

                      ??

                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                      Crafting sound at every level. From strings to signal paths, samples to systems.

                      David HealeyD 1 Reply Last reply Reply Quote 0
                      • David HealeyD
                        David Healey @Orvillain
                        last edited by

                        @Orvillain Yeah that's it! I'd break it up a little more to improve the readability and to remove some repetition.

                        const presetDir = FileSystem.getFolder(FileSystem.UserPresets);
                        const filePath = "FXChains/" + pluginSharedData.lastSavedFXChainFileName;
                        const file = presetDir.getChildFile(filePath);
                        const target = presetDir.getChildFile(filePath.replace(".preset"));
                        
                        file.move(target);
                        

                        You could simplify it further by using .rename instead of .move

                        const presetDir = FileSystem.getFolder(FileSystem.UserPresets);
                        const file = presetDir.getChildFile("FXChains/" + pluginSharedData.lastSavedFXChainFileName);
                        
                        file.rename(file.toString(file.Filename).replace(".preset"));
                        

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - HISE tutorials

                        OrvillainO 1 Reply Last reply Reply Quote 0
                        • OrvillainO
                          Orvillain @David Healey
                          last edited by Orvillain

                          @David-Healey I'll implement that a bit later on. Right now I'm trying to figure out why when I load my fxchain "user preset" it peforms a full state reset!

                          updateSaveInPresetComponents

                          I think it is this call.... I'm willing to bet it has a default fallback mechanism where it resets controls to default, if it isn't specified in the data you feed it.

                          So I change my FXchain load mechanism to iterate over the components manually.

                          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                          Crafting sound at every level. From strings to signal paths, samples to systems.

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

                          29

                          Online

                          2.2k

                          Users

                          13.4k

                          Topics

                          116.2k

                          Posts