Forum
    • Categories
    • Register
    • Login

    save start and end positions in preset

    Scheduled Pinned Locked Moved General Questions
    12 Posts 4 Posters 79 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.
    • T
      treynterrio
      last edited by

      Hi there, my own "Save Preset" button I've placed on the main interface (to save presets more quickly) does not save the start and end positions I set in my audio loop player.
      Is there something specific I need to add? Because when I save a preset via the preset browser, the start and end positions are saved in the preset.

      Thanks

      dannytaurusD 1 Reply Last reply Reply Quote 0
      • dannytaurusD
        dannytaurus @treynterrio
        last edited by dannytaurus

        @treynterrio Are you using the Engine.saveUserPreset() function?

        https://docs.hise.dev/scripting/scripting-api/engine/index.html#saveuserpreset

        Or have you made your own custom solution? If so, post your button's click callback function.

        Meat Beats: https://meatbeats.com
        Klippr Video: https://klippr.video

        T 1 Reply Last reply Reply Quote 0
        • T
          treynterrio @dannytaurus
          last edited by treynterrio

          @dannytaurus

          const var BtnSavePreset = Content.getComponent("BtnSavePreset");
          
          reg currentPreset;
          
          inline function saveNextPresetAuto()
          {
              local presetRoot = FileSystem.getFolder(FileSystem.UserPresets);
              local userFolder = presetRoot.createDirectory("user");
          
              local i = 1;
              local f;
          
              while (true)
              {
                  f = userFolder.getChildFile("preset-" + i + ".preset");
          
                  if (!f.isFile())
                      break;
          
                  i++;
              }
          
              currentPreset = f;
              Engine.saveUserPreset(f);
              updatePresetDisplay();
          }
          
          inline function onBtnSavePresetControl(component, value)
          {
              if (value)
                  saveNextPresetAuto();
          }
          BtnSavePreset.setControlCallback(onBtnSavePresetControl);
          
          ulrikU Oli UllmannO 2 Replies Last reply Reply Quote 0
          • ulrikU
            ulrik @treynterrio
            last edited by

            @treynterrio if you add the module to the preset like this:

            Engine.addModuleStateToUserPreset("Audio Loop Player1");
            

            it will be saved with the preset

            savemoduleinpreset.gif

            Hise Develop branch
            MacOs 15.6.1, Xcode 16.2
            http://musikboden.se

            dannytaurusD T 2 Replies Last reply Reply Quote 2
            • Oli UllmannO
              Oli Ullmann @treynterrio
              last edited by

              @treynterrio
              Was the code created with AI? while(true) should create an infinite loop, shouldn't it?

              As ulrik writes, Engine.addModuleStateToUserPreset should be sufficient to save the values in the user preset. :-)

              dannytaurusD 1 Reply Last reply Reply Quote 0
              • dannytaurusD
                dannytaurus @Oli Ullmann
                last edited by dannytaurus

                @Oli-Ullmann The while(true) does indeed create an infinite loop, but there's a break in there which exits the loop when the condition is satisfied.

                It's just used to find the next available preset number for saving incremental preset names.

                Start with filename "preset-1.preset"
                Does that file exist?
                If yes, then try preset-2.preset
                If no, then use that filename to the save the preset
                Repeat from file exists?
                

                Meat Beats: https://meatbeats.com
                Klippr Video: https://klippr.video

                Oli UllmannO 1 Reply Last reply Reply Quote 1
                • dannytaurusD
                  dannytaurus @ulrik
                  last edited by

                  @ulrik Nice 👌

                  Meat Beats: https://meatbeats.com
                  Klippr Video: https://klippr.video

                  1 Reply Last reply Reply Quote 0
                  • Oli UllmannO
                    Oli Ullmann @dannytaurus
                    last edited by

                    @dannytaurus
                    Oh yes, of course! I overlooked that... Thanks! :-)

                    1 Reply Last reply Reply Quote 1
                    • T
                      treynterrio @ulrik
                      last edited by

                      @ulrik I just tried this but I get this error:

                      Script Processor1:! Line 84, column 34: Can't store modules with child modules {U2NyaXB0IFByb2Nlc3NvcjF8b25Jbml0KCl8Mjg3MXw4NHwzNA==}
                      exporter:! Line 84, column 34: Can't store modules with child modules {U
                      
                      1 Reply Last reply Reply Quote 0
                      • T
                        treynterrio
                        last edited by

                        I just found out it saves the start and end position in HISE but not in the exported version in my DAW. I can see this in my AudioWaveform I've displayed.

                        dannytaurusD 1 Reply Last reply Reply Quote 0
                        • dannytaurusD
                          dannytaurus @treynterrio
                          last edited by

                          @treynterrio What's in your preset XML?

                          Meat Beats: https://meatbeats.com
                          Klippr Video: https://klippr.video

                          1 Reply Last reply Reply Quote 0
                          • T
                            treynterrio
                            last edited by

                            I just managed to fix it. There was something in the script before I had to swap. so I don't needed this Engine.addModuleStateToUserPreset

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

                            31

                            Online

                            2.1k

                            Users

                            13.2k

                            Topics

                            113.9k

                            Posts