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.
    • 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

                                24

                                Online

                                2.0k

                                Users

                                12.6k

                                Topics

                                109.8k

                                Posts