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 @Lindon
      last edited by

      @Lindon ingenious thank you!

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

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

        @Morphoice no problem - works for all cases where you have a combobox and you may at some point want to add to, or reorder or remove any elements...

        HISE Development for hire.
        www.channelrobot.com

        MorphoiceM 1 Reply Last reply Reply Quote 2
        • MorphoiceM
          Morphoice @Lindon
          last edited by

          @Lindon how do you get the full path of the preset to load from the label1 value? I only have the

          I don't have that inside the label oncontrol only the displayed name. I only have the full path it in the combobox oncontrol. If I understand correctly the loading of the preset should be handled by the Label1

          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 Use the user preset handler.

            Then in the post load callback you can store the reference to the preset file

            reg currentPresetFile;
            
            uph.setPostCallback(function(presetFile)
            {
            	currentPresetFile = presetFile;
            });
            

            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

              @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

                                      31

                                      Online

                                      2.0k

                                      Users

                                      12.6k

                                      Topics

                                      109.8k

                                      Posts