Forum
    • Categories
    • Register
    • Login

    Custom browser - custom preset file format???

    Scheduled Pinned Locked Moved General Questions
    28 Posts 6 Posters 840 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.
    • 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

                    36

                    Online

                    2.2k

                    Users

                    13.4k

                    Topics

                    116.2k

                    Posts