HISE Logo Forum
    • Categories
    • Register
    • Login

    Parse getUserPresetList() output into 2d array

    Scheduled Pinned Locked Moved General Questions
    40 Posts 6 Posters 2.3k 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.
    • MorphoiceM
      Morphoice @d.healey
      last edited by

      @d-healey what is uph?

      I loaded the preset like this inside the combobox callback
      but that doesnt work for the label

      Engine.loadUserPreset(Engine.getUserPresetList()[value - 1]+".preset");
      

      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

        @Morphoice said in Parse getUserPresetList() output into 2d array:

        uph

        Reference to a user preset handler.

        const uph = Engine.createUserPresetHandler();

        https://docs.hise.audio/scripting/scripting-api/userpresethandler/index.html

        @Morphoice said in Parse getUserPresetList() output into 2d array:

        I loaded the preset like this inside the combobox callback
        but that doesnt work for the label

        What do you mean it doesn't work for the label?

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

        MorphoiceM 1 Reply Last reply Reply Quote 0
        • MorphoiceM
          Morphoice @d.healey
          last edited by

          @d-healey I'm wrong somewhere

          inline function onLabel1Control(component, value)
          {
          	Engine.loadUserPreset(Engine.getUserPresetList()[value - 1]+".preset");
          };
          Label1.setControlCallback(onLabel1Control);
          
          Interface: Factory Presets/Plucks/Echoes
          Interface: loading preset Echoes
          Interface:! presethandler.js (51): '-' is not allowed on the String type
          

          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

            @Morphoice said in Parse getUserPresetList() output into 2d array:

            Engine.loadUserPreset(Engine.getUserPresetList()[value - 1]+".preset");

            This is only going to work in the combo box's callback. In a label's callback the value will be the label's text.

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

            MorphoiceM 1 Reply Last reply Reply Quote 0
            • MorphoiceM
              Morphoice @d.healey
              last edited by

              @d-healey exactly, hence my question how I can get to load it in the label :) don't I need to do that there instead of in the combo? Or am I missing the point?

              https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                @Morphoice If I'm understanding correctly you have the preset name in the label's text/value, so what about

                Engine.loadUserPreset(value);

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

                MorphoiceM 1 Reply Last reply Reply Quote 0
                • MorphoiceM
                  Morphoice @d.healey
                  last edited by

                  @d-healey just the preset name, not the full path to the preset, it needs the full path to load

                  https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                    @Morphoice Isn't it a hidden label and meant to store the full path?

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

                    MorphoiceM 1 Reply Last reply Reply Quote 0
                    • MorphoiceM
                      Morphoice @d.healey
                      last edited by

                      @d-healey if I understood lindon's approach correctly, the combo box is what's hidden, the label displays the name, at least that's what I got from his snippet

                      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                        @Morphoice Then I defer to Lindon.

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

                        MorphoiceM 1 Reply Last reply Reply Quote 1
                        • MorphoiceM
                          Morphoice @d.healey
                          last edited by Morphoice

                          @Lindon @d-healey I guess the text label could also be invisible and the combobox visible so I get the full path in the label callback

                          but if I call loadUserPreset there it just runs into a loop loading the preset and outputting hundreds of console messages until HISE crashes after a minute or so

                          const var Presets = Content.getComponent("Presets"); // The Combobox
                          const var CurrentPreset = Content.getComponent("CurrentPreset"); // The Label
                          
                          inline function onPresetsControl(component, value)
                          {
                          	if (!value)
                          		return;
                          
                          	local presetPath = Engine.getUserPresetList()[value - 1];
                          	CurrentPreset.set("text", presetPath);
                          	CurrentPreset.changed();
                          }
                          Presets.setControlCallback(onPresetsControl);
                          
                          inline function onCurrentPresetControl(component, value)
                          {
                          	Engine.loadUserPreset(value+".preset");
                          	Console.print(value);
                          };
                          CurrentPreset.setControlCallback(onCurrentPresetControl);
                          
                          

                          if I put the loadUserPreset into the combobox callback it hangs compiling and crashes after a while too

                          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                            @Morphoice You need to disable saveInPreset for the component that is loading the preset, otherwise you get an infinite loop.

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

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

                              @Morphoice so in your combobox callback that is setting the label -, you need a switch that says "hey time to load a preset", that the label (which is saveInPreset) reads and ONLY loads if this == true,

                              HISE Development for hire.
                              www.channelrobot.com

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

                              33

                              Online

                              2.0k

                              Users

                              12.6k

                              Topics

                              109.8k

                              Posts