HISE Logo Forum
    • Categories
    • Register
    • Login

    AppData Folder || My Custom presets dont compile....

    Scheduled Pinned Locked Moved Solved Scripting
    16 Posts 2 Posters 248 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.
    • ChazroxC
      Chazrox @d.healey
      last edited by

      @d-healey

      I dont know if this is the best way but it works.

      	// Load object IN ---->
      	SynthAndFXPresets = SynthAndFXPresetsFile.loadAsObject();
      	
      	
      	// Extract keys from object ---->
      	var keyListSynth = [];
      	var factorykeyListSynth = FactorySynthPresets;
      	
      	for (s in SynthAndFXPresets) 
      		keyListSynth.push(s);
      	
      	for (k in factorykeyListSynth)	
      	{
      		keyListSynth.push(k);
      		Console.print(k);
      	}
      	
      	vpSynthPresets.set("items", keyListSynth.join("\n"));
      
      1 Reply Last reply Reply Quote 1
      • ChazroxC
        Chazrox @d.healey
        last edited by Chazrox

        @d-healey can you please just check my homework here please. I think im routing something wrong but I dont see it......yet....
        🙏

        This is my viewport control script:

        inline function onvpSynthPresetsControl(component, value)
        {
        	Console.print(value);
        	
        	// GET BY INDEX IN CURRENT LIST ------>GET VALUE
        	reg currentSynthPreset = vpSynthPresets.get("items").split("\n")[vpSynthPresets.getValue()];
        	
        	Console.print(value + "name is " + currentSynthPreset + "CURRENTLY SELECTED VPSYNTH");
        	
        	//Create a list to hold all presets combined.
        	local allSynthPresetsNOW = [];
        	
        	// Declare both lists.	
        		// Factory in Local Object
        	local factorySynthPresetsNOWB = FactorySynthPresets;	
        		// User in AppData Folder
        	local presetData = {};	
        	presetData = SynthAndFXPresetsFile.loadAsObject();
        			
        	// Push User Presets to combined list.
        	for (p in presetData)
        	{
        		allSynthPresetsNOW.push(p);
        	}
        
        	// Push Factory Presets to combined list. 
        	for (f in factorySynthPresetsNOWB)
        	{
        		allSynthPresetsNOW.push(f);
        	}
        	
        	allSynthPresetsNOW.sortNatural();
        		
        	// Check 'if preset exists' load presets data from combined list 'allSynthPrestsNOW'. 
        	if (allSynthPresetsNOW)
        	
        								btnHPF.setValue(allSynthPresetsNOW[currentSynthPreset][0]);
        								btnLPF.setValue(allSynthPresetsNOW[currentSynthPreset][1]);
        								btnReverb.setValue(allSynthPresetsNOW[currentSynthPreset][2]);
        								btnDelay.setValue(allSynthPresetsNOW[currentSynthPreset][3]);
        								btnLPFMod.setValue(allSynthPresetsNOW[currentSynthPreset][4]);
        								knbHPF.setValue(allSynthPresetsNOW[currentSynthPreset][5]);
        								knbLPF.setValue(allSynthPresetsNOW[currentSynthPreset][6]);		
        								knbReverbAmount.setValue(allSynthPresetsNOW[currentSynthPreset][7]);
        								knbLPF1ModSpeed.setValue(allSynthPresetsNOW[currentSynthPreset][8]);
        								knbLPF1ModSpeedIntensity.setValue(allSynthPresetsNOW[currentSynthPreset][9]);
        								knbReverbSize.setValue(allSynthPresetsNOW[currentSynthPreset][10]);
        								knbWaveForm.setValue(allSynthPresetsNOW[currentSynthPreset][11]);
        								knbDelay.setValue(allSynthPresetsNOW[currentSynthPreset][12]);
        								knbDelayTimes.setValue(allSynthPresetsNOW[currentSynthPreset][13]);								
        								btnChorus.setValue(allSynthPresetsNOW[currentSynthPreset][14]);
        								btnPhase.setValue(allSynthPresetsNOW[currentSynthPreset][15]);
        								knbChorusAmount.setValue(allSynthPresetsNOW[currentSynthPreset][16]);
        								knbPhaseAmount.setValue(allSynthPresetsNOW[currentSynthPreset][17]);									
        								btnShapeFX.setValue(allSynthPresetsNOW[currentSynthPreset][18]);
        								knbShapeFXAmount.setValue(allSynthPresetsNOW[currentSynthPreset][19]);
        								
        								
        								btnShapeFX.changed();
        								knbShapeFXAmount.changed();
        								btnChorus.changed();
        								btnPhase.changed();
        								knbChorusAmount.changed();
        								knbPhaseAmount.changed();								
        								knbDelay.changed();
        								knbDelayTimes.changed();
        								btnHPF.changed();											
        								btnLPF.changed();
        								btnReverb.changed();
        								btnDelay.changed();
        								btnLPFMod.changed();
        								knbHPF.changed();	
        								knbLPF.changed();
        								knbReverbAmount.changed();
        								knbLPF1ModSpeed.changed();
        								knbLPF1ModSpeedIntensity.changed();
        								knbReverbSize.changed();
        								
        							
        								knbHPF.sendRepaintMessage();
        								knbLPF.sendRepaintMessage();
        								knbWaveForm.changed();				
        								knbReverbAmount.sendRepaintMessage();
        								knbLPF1ModSpeed.sendRepaintMessage();
        								knbLPF1ModSpeedIntensity.sendRepaintMessage();
        								knbReverbSize.sendRepaintMessage();
        								
        								
        		
        };
        
        Content.getComponent("vpSynthPresets").setControlCallback(onvpSynthPresetsControl);
        

        *** Im just gonna talk this out here...

        1. grab current preset name.
        2. create an empty object to hold 'combined' keys.
        3. declare both objects. 'factory presets' and 'user presets'.
        4. loop/grab key/names from both objects and push them to 'combined' preset names.
        5. .sortNatural() 'combined' preset list.
        6. Check if 'preset/name/key' exists.
        7. if object exists, load values by 'preset name'[viewport value] // Should match sorted list.

        As far as my brain can figure out right now, this should work...but obviously not.

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

          @Chazrox

          reg variables only go in on init. Use local within inline functions.

          You need curly braces

          // Check 'if preset exists' load presets data from combined list 'allSynthPrestsNOW'. 
          if (allSynthPresetsNOW)
          

          The contents of that if statement looks very hard to maintain.

          Libre Wave - Freedom respecting instruments and effects
          My Patreon - HISE tutorials
          YouTube Channel - Public HISE tutorials

          ChazroxC 1 Reply Last reply Reply Quote 0
          • ChazroxC
            Chazrox @d.healey
            last edited by

            @d-healey how do I combine two objects?

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

              @Chazrox That can be difficult - I have a whole thread on it somewhere. How many levels deep do you need to combine?

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

              ChazroxC 1 Reply Last reply Reply Quote 1
              • ChazroxC
                Chazrox @d.healey
                last edited by Chazrox

                @d-healey
                Im WILLING! lol

                //This is the situation I need, atleast as best as I understood your question. 
                
                objectA[i] + objectB[i] = objectC;
                
                
                d.healeyD 1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey @Chazrox
                  last edited by

                  @Chazrox

                  What is in objectA and objectB? Give me some dummy data.

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  ChazroxC 1 Reply Last reply Reply Quote 0
                  • ChazroxC
                    Chazrox @d.healey
                    last edited by Chazrox

                    @d-healey

                    const var FactoryPresets = { [
                    
                    "Default": [0,0,0,0],
                    "Rockin": [9,9,9,9]
                    
                    ]};
                    
                    const var UserSavedPresets = { [
                    
                    "Dummy1": [0,0,0,0],
                    "Dumber1": [9,9,9,9]
                    
                    ]};
                    
                    // I need this....
                    const var AllPresetsCombined = {[
                    
                    "Default": [0,0,0,0],
                    "Rockin": [9,9,9,9],
                    "Dummy1": [0,0,0,0],
                    "Dumber1": [9,9,9,9]
                    
                    ]};
                    
                    

                    this is an actual preset in my FactorySettings

                      "DEFAULT": [
                        1.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0,
                        382.0,
                        20.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0,
                        1.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0,
                        0.0
                      ]
                    
                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @Chazrox
                      last edited by

                      @Chazrox You have too many square brackets there, but I get the idea. You can combine these with a loop.

                      Here's an example:

                      inline function combineObjects(objA, objB)
                      {
                          local result = {};
                      
                          for (x in objA)
                              result[x] = objA[x];
                      
                          for (x in objB)
                              result[x] = objB[x];
                      
                          return result;
                      }
                      

                      If both objects contain an entry with the same key, the one from obj B will be the one that's used.

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      ChazroxC 1 Reply Last reply Reply Quote 0
                      • ChazroxC
                        Chazrox @d.healey
                        last edited by Chazrox

                        @d-healey That worked great! 🙏 ok noooooow im done. 🤣

                        **I have 3 other menus. 😭 lol

                        1 Reply Last reply Reply Quote 1
                        • ChazroxC Chazrox has marked this topic as solved
                        • First post
                          Last post

                        20

                        Online

                        1.9k

                        Users

                        12.4k

                        Topics

                        108.2k

                        Posts