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.
    • OrvillainO
      Orvillain
      last edited by

      woohoo! I've now got a custom FX chain file format too. At least in prototype form.

      I think I'll write a tutorial on all of this once I've properly sussed it all out. Because it is quite powerful, and no-one else really seems to have dove into this.

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

      Christoph HartC LindonL 2 Replies Last reply Reply Quote 2
      • 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