HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. Chazrox
    • Profile
    • Following 5
    • Followers 3
    • Topics 135
    • Posts 1,143
    • Groups 0

    Chazrox

    @Chazrox

    Music Producer based in Los Angeles. Learning HISE everyday.

    281
    Reputation
    115
    Profile views
    1.1k
    Posts
    3
    Followers
    5
    Following
    Joined
    Last Online
    Age 41
    Location Los Angeles, CA.

    Chazrox Unfollow Follow

    Best posts made by Chazrox

    • RE: More Positive Posts?

      Good Morning! I agree. Here's something I've been doing. Aside from working on my personal plugins, I've been wanting to show my appreciation to the community by designing a set of 3d assets / filmstrips that people can use on their projects.

      There are quite a few regulars in here that always get me going when im stuck. I Love it here!

      This is just a mockup of one of the kits im working on. All of these assets should be available for anyone to use soon. Dont quote me on "soon". Im sure everyone in here has 10 things going at once lol.

      Screenshot 2025-02-02 at 9.14.44 AM.png

      Screenshot 2025-02-02 at 6.44.25 AM.png

      Im still messing around with the faceplate so the actual release might not be exact.

      Much Love to the community!
      Special Thanks to @Christoph-Hart
      and honorable mention to Mr. @d-healey who got me going on all this in the first place!
      Im soaking it all in!

      posted in General Questions
      ChazroxC
      Chazrox
    • FREE DESIGN || Upgrade Your Keyboard!

      Freebie for the community.
      Screenshot 2025-05-11 at 2.08.43 AM.png

      Here's the script:

      namespace LafRealKeyboard
      {
      	const var FloatingTile1 = Content.getComponent("FloatingTile1");
      	const var Laf_RealKeys = Content.createLocalLookAndFeel();
      	
      	//! DRAW WHITE NOTE
      	Laf_RealKeys.registerFunction("drawWhiteNote", function(g,obj)
      	{
      		var a = obj.area;
      		var WhiteUp = Laf_RealKeys.loadImage("{PROJECT_FOLDER}WHITE KEY - UP 11.png", "WHITE KEY - UP 11.png");
      		var WhiteDown = Laf_RealKeys.loadImage("{PROJECT_FOLDER}WHITE KEY - DOWN 11.png", "WHITE KEY - DOWN 11.png");
      		
      		if (obj.down)
      		{
      			g.drawImage("WHITE KEY - DOWN 11.png", a, 0, 0);
      			g.setColour(Colours.red);			
      		}
      		if (!obj.down)
      		{
      			g.drawImage("WHITE KEY - UP 11.png", a, 0, 0);	
      		}	
      	});
      	Content.getComponent("FloatingTile1").setLocalLookAndFeel(Laf_RealKeys);
      	
      	//! DRAW BLACK NOTE
      	Laf_RealKeys.registerFunction("drawBlackNote", function(g,obj)
      	{
      		var a = obj.area;
      		var BlackUp = Laf_RealKeys.loadImage("{PROJECT_FOLDER}BLACK KEY - UP 11.png", "BLACK KEY - UP 11.png");
      		var BlackDown = Laf_RealKeys.loadImage("{PROJECT_FOLDER}BLACK KEY - DOWN 11.png", "BLACK KEY - DOWN 11.png");
      		
      		if (!obj.down)
      		{
      			g.drawImage("BLACK KEY - UP 11.png", a ,0, 0);	
      		}
      		if (obj.down)
      		{	
      			g.drawImage("BLACK KEY - DOWN 11.png", [a[0], a[1], a[2], a[3] + 10] ,0, 0);
      		}
      	});
      	Content.getComponent("FloatingTile1").setLocalLookAndFeel(Laf_RealKeys);
      }
      

      Download these images and add them to your projects 'Images' folder. F5. Enjoy.
      FILES---> CUSTOM KEYBOARD IMAGES

      posted in General Questions
      ChazroxC
      Chazrox
    • CUSTOM TABLE PRESETS Sub-Menu Template || Ready-to-run!

      I've been struggling with this one for a while and finally got a solid working script! I just wanted to share with the community an easy working template.
      Table Preset Browser Working.gif

      Functions:
      Save
      Delete
      Rename
      Back
      Next
      Random
      Combobox presets with custom name save

      Hope this helps someone down the line!

      const var PresetList = Content.getComponent("PresetList"); 
      const var PresetNameToSave = Content.getComponent("PresetNameToSave");    
      const var SaveOk = Content.getComponent("SaveOk");
      const var TableEnvelope1Pro = Synth.getTableProcessor("Table Envelope1");
      
      // File path for saving/loading
      const var presetFile = FileSystem.getFolder(FileSystem.Desktop).getChildFile("myFile.json");
      
      // Declare object to hold presets
      var AttackTablePresets = {};
      var lastRandomPresetName = "";
      
      //------------------------ LOAD existing presets on init ------------------------//
      
      if (presetFile.isFile())
      {
      	AttackTablePresets = presetFile.loadAsObject();
      
      	// Manually extract keys
      	var keyList = [];
      	for (k in AttackTablePresets)
      		keyList.push(k);
      
      	PresetList.set("items", keyList.join("\n"));
      }
      
      
      //------------------------ SAVE PRESET ------------------------//
      
      inline function onSaveOkControl(component, value)
      {		
      	if (!value)
      		return;
      
      	local presetNameNOW = PresetNameToSave.get("text").trim();
      	if (presetNameNOW == "")
      		return;
      
      	local tableData0 = TableEnvelope1Pro.exportAsBase64(0);
      
      	// Add to object
      	AttackTablePresets[presetNameNOW] = tableData0;
      
      	// Save to file
      	presetFile.writeObject(AttackTablePresets);
      
      	// Update ComboBox
      	local keyList = [];
      	for (k in AttackTablePresets)
      		keyList.push(k);
      
      	PresetList.set("items", keyList.join("\n"));
      	PresetList.setValue(keyList.indexOf(presetNameNOW) + 1);
      	PresetNameToSave.set("text", "(Enter Preset Name)");
      };
      
      SaveOk.setControlCallback(onSaveOkControl);
      
      //--------------------------COMBOBOX RESTORE TABLE CONTROLS --------------------------//
      inline function onPresetListControl(component, value)
      {
          if (value <= 0)
              return;
      
          // Get the selected preset name from the ComboBox using the selected index
          local selectedPresetName = PresetList.getItemText();
      
          // Look up the table data in the preset object
          local presetData = AttackTablePresets[selectedPresetName];
      
          // Restore the table if data exists
          if (presetData)
              TableEnvelope1Pro.restoreFromBase64(0, presetData);
      };
      PresetList.setControlCallback(onPresetListControl);
      
      // ---------------------------DELETE CURRENT PRESET CONTROLS -------------------------------//
      const var DeletePresetButton = Content.getComponent("DeletePresetButton");
      
      inline function onDeletePresetButtonControl(component, value)
      {
          if (!value)
              return;
      
          local selectedIndex = PresetList.getValue();
          if (selectedIndex <= 0)
              return;
      
          // Get preset name
          reg presetNameToDelete = PresetList.getItemText();
      
          if (!isDefined(AttackTablePresets[presetNameToDelete]))
              return;
      
          Engine.showYesNoWindow("Delete Preset",
              "Are you sure you want to delete \"" + presetNameToDelete + "\"?",
              function(result) // nested callback
              {
                  if (result)  // IF 'YES' 
                  {
                      var newPresets = {};
                      for (k in AttackTablePresets)
                      {
                          if (k != presetNameToDelete) 
                              newPresets[k] = AttackTablePresets[k];
                      }
      
                      AttackTablePresets = newPresets;
      
                      presetFile.writeObject(AttackTablePresets);
      
                      var keyList = [];
                      for (k in AttackTablePresets)
                          keyList.push(k);
      
                      PresetList.set("items", keyList.join("\n"));
                      PresetList.setValue(PresetList.getValue() - 1); // Clear selection
                  }
              });
      };
      
      DeletePresetButton.setControlCallback(onDeletePresetButtonControl);
      
      //------------------------------------RANDOMIZER BUTTON CONTROLS ------------------------//
      const var RandomizePresetButton = Content.getComponent("RandomizePresetButton");
      
      inline function onRandomizePresetButtonControl(component, value)
      {
      	if (!value)
      		return;
      
      	// Collect preset names
      	local presetNames = [];
      	for (k in AttackTablePresets)
      		presetNames.push(k);
      
      	local total = presetNames.length;
      	if (total == 0)
      		return;
      
      	local randomPresetName = "";
      	local tries = 10; // safety cap to avoid infinite loop
      
      	while (tries > 0)
      	{
      		local i = Math.floor(Math.random() * total);
      		randomPresetName = presetNames[i];
      
      		// Stop if the new name is different, or only one preset exists
      		if (randomPresetName != lastRandomPresetName || total == 1)
      			break;
      
      		tries--;
      	}
      
      	// Find index of selected name in ComboBox
      	local comboIndex = 0;
      	for (i = 0; i < presetNames.length; i++)
      	{
      		if (presetNames[i] == randomPresetName)
      		{
      			comboIndex = i + 1;
      			break;
      		}
      	}
      
      	if (comboIndex > 0)
      		PresetList.setValue(comboIndex);
      
      	// Load the new preset
      	local presetData = AttackTablePresets[randomPresetName];
      	if (presetData)
      		TableEnvelope1Pro.restoreFromBase64(0, presetData);
      
      	// Store the name to avoid repetition next time
      	lastRandomPresetName = randomPresetName;
      };
      
      RandomizePresetButton.setControlCallback(onRandomizePresetButtonControl);
      
      
      //--------------------------BACK BUTTON CONTROLS -------------
      const var BackPresetButton = Content.getComponent("BackPresetButton");
      
      inline function onBackPresetButtonControl(component, value)
      {
      	if (!value)
      		return;
      
      	local currentIndex = PresetList.getValue();
      	local totalItems = 0;
      
      	for (k in AttackTablePresets)
      		totalItems++;
      
      	// Wrap to last if we're at the first
      	if (currentIndex <= 1)
      		currentIndex = totalItems + 1;
      
      	local newIndex = currentIndex - 1;
      	PresetList.setValue(newIndex);
      
      	local presetName = PresetList.getItemText();
      	local presetData = AttackTablePresets[presetName];
      
      	if (presetData)
      		TableEnvelope1Pro.restoreFromBase64(0, presetData);
      };
      BackPresetButton.setControlCallback(onBackPresetButtonControl);
      
      
      //-------------------------------NEXT BUTTON CONTROLS ---------------
      
      const var NextPresetButton = Content.getComponent("NextPresetButton");
      
      inline function onNextPresetButtonControl(component, value)
      {
      	if (!value)
      		return;
      
      	local currentIndex = PresetList.getValue();
      	local totalItems = 0;
      
      	for (k in AttackTablePresets)
      		totalItems++;
      
      	// Wrap to first if we're at the last
      	if (currentIndex >= totalItems)
      		currentIndex = 0;
      
      	local newIndex = currentIndex + 1;
      	PresetList.setValue(newIndex);
      
      	local presetName = PresetList.getItemText();
      	local presetData = AttackTablePresets[presetName];
      
      	if (presetData)
      		TableEnvelope1Pro.restoreFromBase64(0, presetData);
      };
      NextPresetButton.setControlCallback(onNextPresetButtonControl);
      
      // -------------------------RENAME PRESET BUTTON CONTROLS-----------------------
      const var RenamePresetButton = Content.getComponent("RenamePresetButton");
      
      inline function onRenamePresetButtonControl(component, value)
      {
      	if (!value)
      		return;
      
      	local selectedIndex = PresetList.getValue();
      	if (selectedIndex <= 0)
      		return;
      
      	local oldName = PresetList.getItemText();
      	local newName = PresetNameToSave.get("text").trim();
      
      	if (newName == "" || newName == oldName)
      		return;
      
      	// If new name already exists, do nothing (or optionally warn)
      	if (isDefined(AttackTablePresets[newName]))
      	{
      		Console.print("A preset with that name already exists.");
      		return;
      	}
      
      	// Copy data to new name
      	AttackTablePresets[newName] = AttackTablePresets[oldName];
      
      	// Rebuild the object without the old key
      	local newPresets = {};
      	for (k in AttackTablePresets)
      	{
      		if (k != oldName)
      			newPresets[k] = AttackTablePresets[k];
      	}
      
      	AttackTablePresets = newPresets;
      
      	// Save updated object to file
      	presetFile.writeObject(AttackTablePresets);
      
      	// Update ComboBox
      	local keyList = [];
      	for (k in AttackTablePresets)
      		keyList.push(k);
      
      	PresetList.set("items", keyList.join("\n"));
      
      	// Select the renamed preset
      	PresetList.setValue(keyList.indexOf(newName) + 1);
      };
      RenamePresetButton.setControlCallback(onRenamePresetButtonControl);
      
      

      I had the help of @d-healey and @Lindon with making this and a few extra helps from gpt.

      Bless! 🙏

      • ROX

      PS> if anybody wants to make improvements and toss it back, have at it! Together we can make the ULtimate Table preset menu. haha.

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: Software for Animation Sprites....

      @rglides SAMPLE:

      *HISE Logo for fun. Dont sue me. lol

      Screenshot 2025-02-02 at 4.42.00 AM.png

      posted in General Questions
      ChazroxC
      Chazrox
    • RE: Software for Animation Sprites....

      Ok just sharing my first 3d Knob that I made! This is gonna be fun.

      @lalalandsynth how do you get your shadows to show up in the animation? I can seem to get mine to show up on the transparent areas.

      ezgif-4668e059bd8e4.gif

      posted in General Questions
      ChazroxC
      Chazrox
    • RE: Guitar Pedal GUI Kit in the making.

      Screenshot 2025-02-11 at 12.11.02 AM.png

      posted in Presets / Scripts / Ideas
      ChazroxC
      Chazrox
    • RE: Help. Project wont open. Instant crash.

      @Chazrox man I really figured this one out on my own and im proud of myself. lol

      I started digging around and I opened the corresponding .xml file for the project and noticed in one of the lines that it was pointing to a default preset that no longer existed in the expected folder it was supposed to be in. Turns out I DID do something, which was move that folder that the preset was supposed to be in. I deleted that line and everything opened up as normal. fweeww! Sweats! haha.

      this thing...

      Screenshot 2025-03-08 at 9.55.41 AM.png

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: Sliders not responding to "Consumed" MIDI CCs

      @CyberGen I had some wierd bug regarding midi and I found on the forum somewhere that if your buffer settings in your DAW are 1024 or higher it would break the midi in some way...I thought that it sounded bogus until I tried it and it fixed my problem. Just throwing that out there because it seems your out in the deep like I was so it wont hurt to try!

      posted in Scripting
      ChazroxC
      Chazrox
    • GRID HELPER || Free Script

      If you're like me and just need an extra visual helper, you might find this useful.

      Screenshot 2025-05-31 at 4.19.37 PM.png

      Drop a panel in your project and name it "Grid1".

      namespace GridHelper
      {
      	const var Grid1 = Content.getComponent("Grid1");
      	
      	Grid1.setPaintRoutine(function(g) 
      	{
      		drawPandelGrid();
      	});
      	
      	inline function drawPandelGrid()
      	{
      		local a = this.getLocalBounds(0);
      		
      		// Size Controls
      		local NumBarsX = 10; // Number of Vertical Lines
      		local NumBarsY = 10; // Number of Horizontal Lines
      		local BarHeight = 1; // Horizontal Bar Size
      		local BarWidth = 1; // Vertical Bar Size
      		
      		// Colour Controls
      		local BarColour = Colours.withAlpha(Colours.black, 0.5); // Bar Colour
      		local BackgroundColour = Colours.withAlpha(Colours.pink, 0.5); // Optional Background Colour
      		
      		// Spacer Logic
      		local spacerY = a[3]/NumBarsY; // Horizontal Line Spacing
      		local spacerX = a[2]/NumBarsX; // Vertical Line Spacing
      		
      		// Paint Background		
      		g.fillAll(BackgroundColour); // Optional Background Colour
      		g.setFont("ArialBOLD", 12);
      		g.drawAlignedText("GRIDHELPER1.0", [5,5,100,5], "left");
      	
      		// Paint Lines
      		for (i=0;i<=NumBarsX;i++) // Vertical Lines
      		{					
      			local x = i * spacerX - (BarWidth/2); // Center Line ON grid
      			
      			g.setColour(BarColour);
      			g.fillRect([x,0,BarWidth,a[3]]);	
      		}
      		for (i=0;i<=NumBarsY;i++) // Horizontal Lines
      		{			
      			local y = i * spacerY - (BarHeight/2); // Center Line ON grid
      					
      			g.setColour(BarColour);
      			g.fillRect([0,y,a[2],BarHeight]);
      		}
      	}
      }
      

      Its a snippet from @Morphoice that I modified to have both horizontal and vertical lines, made it modular with the all the controls variables and customizable so you can set a different amount of x or y bars/lines. Comes in handy sometimes when I just want to visualize a certain part of my plugin and make sure its equally spaced to my desired paramaters.

      (idk if something like this exists already but I thought it was good excercise regardless). Bless! 🙏

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: Player - I'm going crazy

      @clevername27 agreed. Just resubscribed for my second month and the amount that i've learned so far is insane.

      posted in ScriptNode
      ChazroxC
      Chazrox

    Latest posts made by Chazrox

    • RE: Getting label and value to show in customer slider graphic

      @pcs800 it has its own LAF essentially. You can easily re-create the same exact knob with your own LAF.

      posted in General Questions
      ChazroxC
      Chazrox
    • RE: Getting label and value to show in customer slider graphic

      @pcs800 Yes, what David said. Since filmstrips cannot be 'changed' dynamically, you definitely have to bake the values into the png filmstrip image if you're set on only using png filmstrip.

      If you mean just a still png image, you can set the still image as the knob background and just animate your values using LAF.

      If you choose the still .png image + LAF, you achieve this buy loading your image into your LAF function and drawing as needed. This allows you to utilize LAF to display your real time values.

      There are some examples on the forum if you choose the latter.

      posted in General Questions
      ChazroxC
      Chazrox
    • RE: Convolution Reverb || Reverbs dont in DAW...

      @cassettedeath

      @cassettedeath said in Convolution Reverb || Reverbs dont in DAW...:

      pooled resources to the app data folder?

      I've 'tried'. ha

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: Convolution Reverb || Reverbs dont in DAW...

      @cassettedeath I do have the convolution working in another project and it works fine in daw but I made it in Scriptnode. Maybe thats the problem/solution? I thought this would work because its a pretty simple project but nah. lol. I gotta be doing something wrong.

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: Convolution Reverb || Reverbs dont in DAW...

      @d-healey I have a delay effect working in a container in another project and it works in daw. I also have convolution reverbs working in other projects fine but for some reason this simple little project is giving me problems. There's really nothing to this project compared to my other projects which is why its kinda stumping me. Its gotta be something simple. I've never had to package my audio files to a binary source til now.

      I tried exporting the plugin and packaging the audio files in an audiodata file and it automatically stored in my folder for the plugin in Application Support but that didnt work for me.

      Im not sure what it is.

      posted in Scripting
      ChazroxC
      Chazrox
    • Convolution Reverb || Reverbs dont in DAW...

      Everything works fine in HISE but when I export and test in daw, none of the controls related to the convolution reverb module are working and the reverbs arent being applied.

      Can somebody please take a look a this snippet and check my settings and see if you can catch whats up with this please?

      Also, I want to include a pretty good amount of reverbs in this so I've tried compiling the audio files into the source binary instead of "embedding" (honestly idk the difference but I noticed the warning about embedding files suggested against embedding > 50mb worth of files so I tried that and still no results).

      Can someone look at this?

      HiseSnippet 7090.3oc68rDabbjc8HoV1yXKIaudMxtqwldI1UfzhhpmdlgjZks3L7yHwU7y3Ynnrf.CcyoqYlVpmtG2cO7i8RrJAI.5VNlq9bBPP.xkEAHa3Bjr60EXStjSZQtDjKQmBP.Bfyqpp+T8u4GokE2kT1jcWU8p58d06W8oqBsuMRWAorsktZmNHaNtTmuhoQcjkkgIWpLabPGDWp2ju1A51sVnkrpN2xKxk5J7azBILulb8mHLuw9byePGYKKjBWpTm+N3BkJ8E3H+7h4lWVSVuNxOINtMMTqiVQsspsepUJdOUMsxxJnMTayT57EWttg9BFZFcAD577hbcfVUtIZMYbwNGO2cksZwk5C3kjZTeVQwYykqfnrbNEY47YQ4tIpwzMpWP7lhJ6TPD92zbot3RJp1Fl0rksQVbo3m2P4fZsL1Sm1.apZotiFB+RVtZPKSStrglBlDwot9tHycUQ6wlF2BsT0T73dV.ujmgWddJu7c4WUUQ0Kced5aQxPvGBVlZpyEDkOe.TNKKJKxfxwfRoXPoKPQo2luVcS0N194fwm2feYcajYCYnuiEUnkk6b0+17KX.kP2dp1xOAU1DdwChwmVTbxoKHNwsxf+A5AsrE1U1TX9t11F5YE9HAWfahrWvncGCc3kwGyI+w..CCjTe.RBCDCTPA1w.jNStw7JQvlCJ7tFZcsUMzqhfN5cv0.QC.CeotJpF0ja2QC4wvvUkGLBN.ErRUMsfZYI8lp5nozLjUH0SYUMjEv0LpXXnMdP7+d5F6jLMSxMXSfSJWOAHWT.D6I.hQAHaOAHaT.x2S.xGEfo6I.SGEfB8DfBQAXldBvLgDjpAlHWpQCTc6.BBzjFeLb1BN4GropohkRvFDiGPR1Bj7SBPo9.XXg96VobbP.IGrEVI9xsBsbLEboONVbeoOVHVkzb8QIkHAlIipdcstJHnAkafY4VS8XKbN9oWpbIcYMilPkYYngnP6TpL23FBk+DgUJ8vkpJTR35BKuZk6uRskDptTsJquF7vBqu57qO+5eB7vZaTc8UpA0rFn4IznqdchRJ1mhi1OFeMA0u5tH6j.Ao0EMQluHSZ0FBiSdS31BhSjIMjT5nFHlxBYi0kGGTyeDs3WO6V.pl9vLGdqL807CFdGzXAYMsc.WbiGECwjtWZXPFeLUaTaqwlTXLBeoggov36KnpiM23g96OEzKYCBKViCEyiFbqGYEkkgZAJlIpiF138XeQkpq+SVZgM1t75qr3RUODPPu7lZO4cC79CJsYf2kUav99xU2FZzakl7CvOH+4vLYRi6EWFrJVwDsqpQWqX5hb7FzyNHMi5xZ3JZs0e.Q3ykt.l8l3RQLq52OBzOgAjN.mjVRmZ45BYADNXYp2RVuIRAWYoIcpoyzGOXw2mFjjv0lKeXMz91IxCjRjGjdzYBXJrGrgqgYCgJyPxFj5MaPhgMf4CWO1ehgoP79MX5sNx6LFwwXTIaaS0c5ZiFWzEpdqr53uMdpgEcHL5DP4bCGJ66EXjQ4b8BkywJElDNKNT3L3nIHtlcvwUwdgqhLr23QzrCEhtxw.Qy1KDk0XcBXZ9gBSi2aiOhO8fi346EhmOnzPB3dgQTDNDRKM3HcgdgzE5O2d5SFLN2fiwS2KLd59iwybhJeL6fi3yzKDeFVDmIRR4FttGXh8qtIBFo5JX2RqXX7jR5JkQH5HbX..hRnopELlwxNLfwGSwTdO2rg3Zb4Li2bRAicdLgAfaUYnsf2mRFZGrA2lT7FOKAiiSemlzWvDcyoZnpoUEG2pKHzjCBhM3+kEHLlTRSsoNRYCHKuxLoWCCgcUGHVSjxXwUg3XynuJ4WiDz.fTZJ7fiObhAL3vHbRFtX+YpPUurBRVqhQmtcVEo2EGvWM0OGwvgE.VrKGFhHwtkpkvd.eS.Zc3MD7hhcKAaCAIQQAYXLOsPpMaYiSofn..hrxi6BBE6X.EqirobaqLoMQ1cM0EdjTtBSJjSbKfOHPpenVsHUqesjiTK22BYILlBpgbWM6wbZUby4T8Nk2PW6.bE4z.4DoLyAQ7xiKLOHb2zznqtRB7AWYmRZZiS6IslZG7rdgaoCGLg4.77DZmnRzjjZAII+nbaEV.OLpvJgKSMeiMRPjAstKvtzvrLjhiAi3pp8TsaURqSK4wE2ub4EKOaNQHJCwoxNAI1rvMvgrsvFp0exHU4RIV43d1jY8jL6UyDT6KKUi0.rMJLGzrEf.7mJmvGPRUwXOcgervTyLAkwwVwXrUTr7zkK6odW1.qbVxTUVC5KyluelJBYi3P73JRLH+gJ7vDs76NYci2PVyhX0G3Wvv3SHOmH1hImURJGnCBAONfngsY2jvBurBiDdYrRBYbX5j8j4MSC8ZnGLw9lgoiXMCaz55iS09OLiP3rZzH17bpLMjYrYimRaydA335cauCxjs6FWPtTWnWSUc1jlp55T9BSAMzWVW0d8NH8jlrZNGlIGWpLNXEWpKZSlg3usyLDSlyxGHuKpggYaNUE7rVGHsrbDBfcx9Ujsk4R8GyGdNE9Ixe9mKbWnaAOgAbl3gUBTooMPjovvQRYIcE76kSeNJ9QPpySQp2xAobs+Rvm2f2ywYHT4oKWLRUbYmpnllpBxjTAuFOYzFgoiFCAvga4m8aGBfkB2xu3eZvANWT1+fCb9v.KNDncgv.+vg.3oONn8Lw.78WdQrTGWpTNB0ffdGjosJVGJ0hncUqinq8QZ9EQVOw1nCWpq5YBgK0knM5kbWYDYcjFoMecdxyY41msAOf8ERDKdIbzeVQZDKdoT4OunuuIH0K99u+6+U3LXhWDm768duGI4cLLAJtprhZWK11wMDWbY+te2uKorZFXWwTUbJb3n7XgxOJW755kUblbyjO6rR4vbbOxOSeH+YXIeghLj+6WLH4WIB4+hOqXHbPJe1BYycyYykLoFCo75E2kcQuXQ+2HH5uba4lHB5eY1TjNF8gGYVDBNwYMHmLhsMuUFUXEri9Jx1PXg5S0QuImLN.Em54oeTle8brcYAnHjtL7rRTxqeBmAHreHauyOLTuiPDB6oeV.gy2jOuzLyl8lhhyJFT9LPNwKpEeuY9hCOEekfT7Jx63QwjmCnNl+HVJ9nfT7W9mGlh+RYh7H1TP0k1bopyWiqAXzH.w7oMKhSi1c+Z7UQfooPZRXtAHHOc9Y3PfKa43Ip.5mMikKmnT8k6S2dtDkmu8QgEeaVLhDtQG4OqqSjDQHsaNctYJHMcBczrTUTomYyOqX13jd.M972TrPhxIIxIRmj9cZdxyYS177hE6mp8SavnZ+g8P0F67wYsdE1P0Fufbl.M.XnP1Hp5O+i+4+h47HnTmefLW85Tx4l8vPUesBsMturqIZaHD8rBiOyDS83NMGD6arcpAjgYIqh+tO+eMIx5M6CYM6IHYkafIqHXehzI7jtxpFJHLFCz.BhcNARseVjymnEY89ZQt3mVLI2hACiPPPHtvHtxUtxWkjOTeU2TmiMbhm7jmbebtCl.aDxcZVxcYFx8okBQtE+YgIWt+jnNfbs9DwDxrhh4jjlM+P5.Z3MrDHvgbGCqKE6vXc46GQ19951XKIJD6GAjFSnq3xC8.zXv8oXkDWIDt+7+zH3dihcbGv3xJ3FMlc8RHgR.r3DJ+p+GZxrNZhqv4vI+O7q9dj12BFNaYOlWpyyJw5BpqWrXME02QLxvaTX4MWMDuAhRJrX6sKxhNtJcgH629se6+unj8u7e4W+UQUmykK2+qapVbm66bQ9LYM1654EyHA+ofXlRBUzjsQYja2QvpiporVlRcsMfnMMeRF7TaVSStSl4UaBdqrsMZmYdSUv00CfgbmY9tvSUkamYQitfTkYlEM611o9VpdKCmGKKa67zcfeoHTp8Nf+s5vqHagksEd.xNycvyzuPsNlp5MMQ6VChzEYj4NcgXfLc.9tFl5NOtrt.dqCVQ1xFd1BFKmv5csyT5d2Y64+DoBamcxBVAea6rSu+1V1lH65sBkyz4SJmYSJCELywKIo.slTzBjKPAx4UfEOPWtNXcY6MqVaaShj+1ZF5MiMi1P.gca2irBPh8nX4jFnhMauKEnFYZm4dFlM29NUy58P.jvKQ1lrpglrtx1UWRRL61VjN7saAZAWWwTcWTrYqAhpImKfuwkqsbGz1MvRHQS1BpQ+jKzaDoPOQjB8DQJ31hjzCgNgxLJRECITH.I3M6WYVQ1rIxWyh95Bs5ZBbb5KLEipDQetpAnSSd7Z0rA2RY.KGJVcPxOAYJPILAZWdlUIBF9Mhy63J1AVlTfmsg+nVWNypcsTqKrfV2cxTEsCdgRxTUstQ8Vfde0JBr3TMrTk6ypDvElGIqXgeCOy6NYA1jberMzJBWU.LKAVRcd0CEou5vGnuPPN5iL0fCATSW1zCWnDeSrMHv3X1vIH4lfglhfLYalIXg2gatoSYaB6XruaJ3dNAMCiNBJHM4CxTCFAHjrO51UQAoKTy1nC7rYCU8LjZzQBKyFsTcMAtgIpMRyPXE7ZdUMylxl3NxMQlGHDRVXSxt5gB0lvHNHOIrlgD4sGzRE5sMs3ZKuOdRR2hiNgW8O.7.Qyj7XmyEZryOuSDudqUrCv10sYCNjwepenN4hDpSSH8cLNXa7xx.bzsgX41eZQwsKH1otMI9mAZDHO8ix7eOWhAzkoOiAgk3O59Lt7OpNSbZWseiBThfuA4VbkhLxxRESbx.FYJfcxdDdxoQJfMb5+ttmFo.1g28aN7zHETHw9f1mRnfoSTO3zBELSh1hdUgB567tIxPBOmUQ3KeIPBIh1eq9tXeLd.micbe1gF2G2VQPh6TLzX7hNHVx.d+k9C3EbVye2JkCMJP2gDyNLxezO5G8egSqMYVndC9xlHXzs50OfqM6GYU9hjP.bGl9eYQqtMZnhCJfW3teNTVEEMTECKU7.0Ym6E8tsg.YT63O6HGscQKaTmfyjxKlCOza7Na.On4Pis9c66pg5iZeYiWNb2UNA4t.6jk69re6fwce1eeQm8vzlgWL3SBt92tuKi79ryMwArS.0WWb8GrzFCMWGu9q0UwKmS.I5GdDKOGO2O97bk4Shmys7QwxygzimmCgWiJKW2F+wv4V1+y4NgU.Xiu4oMd4zUrX0G9MdWw2frb1.x9R6WFr7WiuR0EWY3Y5Wjm74tFfE+v3MF3y1aakLaOdqNbhEGptiQm0yFI4md3KGV+CVdwMt6vv5Sf48v.V54TSfW9vghW11nqEpFRG2X6pZy3+64yQkAxvunpUcSjMDLkEdxWpf27rvql30koG8Eeq9tuZXhp29kgq2z7yWZkRqsvRCsh.Odoi3hSvOodKf8ETqIjYqSHA92ou6+HejnyguLXxWjewRqV4kg88jCuIQ66IyHuTPFIcaX5L7AmuJNt.8m8XAX.6bQW.FJ2477eHVMxnMznxlGDduVjDKVRRJtUr4wO9wwrPUtLaK4cQKqWwDYgrSbe5zCBNvj27SGYB91mZH3.KcZ9dRvqkHA+Z7kDtgv7C.Md6ae6ge0GiRiw6F3EyMLaAfBGucaVzMaj6VuxiIjgO6zyLyLRYKD6xg+VIrMBFaDlHf2rO6GqD2AZG8f9teG39Pmt4qvWcoMptt.6txhNABWheAfhUQlBqg1KzlUJmTg7yLyMuoX9naiKtaVbv1uY8i9BHFeUVwX09q2tlC88V7yuTsMDpc2k2P.ShIRfsAYOU7WLfyTgGX6kETF9J+sO+q5wF23J8UAkMx4m+yFYEzpKUCFL3HXUZyM2b3sJQBwZgtljC0jKyulgYaYMm2ipM26cRw65vaJqYHaqp2bCUM5bbcEd1jRbGlczd8cOf77NEc1Vxz8f7U3on27lF6YAwVvxktzktTLa0GWBOZvCzsgBdyOetew43+hLBBig+J.pAbAZG7X+XA72Pwjt4rz9cjgXSMzsJYAUU213RP9RO7JB4PtwLdvweTDVQf.+QKPKuEK.9IudiF.AC4kUzCnRJJw2FUA8z1If9Khzf.kiOuZHYy5slW1LJEIuqgIv7vGsPAxrbWMsJx1sbKPPRygjn6ag4IVSCj+ZcaSYgXvjHIQe+AXIhpfviAjwifzEDDmJWnelbHSGRdKRarhpkcISjrGS0oElLt+3AEEypZrWEYEEPpdPgyiqNOd8fwT5inYrpgoSGQ3b7k9BmiKeNRtYNLjt9yd1yHh7kiXTe7h3zv1lWe+CZhz43hdDG8V7qZnzUS1N3ItD9y70ICbvsrGyQ3ixH7X1Nf0g+I1wvzfhhuMeEU65shGGOWL3HG2WK3nygW0k3oGgB9H3E3K+IeMcRUcwnseZ9pFcsQPSRYN32vqN+pxv.Q1OaPD47CLhjs27AmVg1H.R.p40.ox5HfMnCg1g+trRg4+NuK59ILgOyIHu7UvONYlE+dJmLyFJSI22wYJEJybrY58BW+3RuSXtzYroAQXR5UItjK4DKWxMyX4RmygEFKW57NYFKW508N6+7NQDHLpKyydtU0ii9OHND7VkgMgGDLBxGVLxgC3KlaY8cQl1ULzjMCaY6jpSH0EFXyuXRR333h3BCl8udePBNntKdGdBK+zDBSDIN8fvuEdz7uBftmZL19ZTl4qyiKgis1Kyydl4kjIjOE+su5zNzPaYMFfqgk0UP6yxqq01vvtEvWBzAbhY1H0.a1fPemRkRdk0YiTOkT5myFNtXNIZOyYyYNaNyYyuuYF4JD6uKPOzKQlr1j8RL6vcnU+h4h6Pq9EyE+gVMDEanCs5vlSFvCxiQ3Lm9BuxclS+GJyGy4+864ig8vLOMs8eGdv04AcZYnqVurplsitFc6M1qQF5uU6XNgU9XmWN56+W7eLG8Cu0+Xk3i6JqEhyNuZGri6iKW+Dx8864u+AO83g4zVLGeGdmNcALy9zCdeY9O9UKjseJvqLzJvO625o.SHgfJv+QgTfKN0u52TJYE38+vyTfOSA9LE3jQ1LtSh8BcM2EszmQvxKxiOW9CrFQPr5TEaK2I4YdYRP4zudt+la7uMGNgrtCk9m+W8OVDmfjSBe4c9c+6jRjK3Po0Uxyt2RJWdikb2MEmhmt7QedtdG2HxXNSDH8IweJIvJ.sn4AgMu9.jc3jVAXkABXhia41c5pYgVAo2jclNdwbN30x5c5FXzJ22B4elmtQKSjrBa8UwDoDbVTDKdW0EXpCvH+hxs6DXF1d3QPmuiznSRuaQ+yog9cx+Q1Lhz4lz4CYEeZ+g+TaCbb.hSf4z.7O.W1pAZNxxcRufLmMGYmMGYmMGYm1WPlWxX2PNCdujwNtdgcohfcskqaZrcc54QJ1X0qSRAjDzIN3RyuJ9cgXN6aaqpntc85AqpH.JMp.laTAL+nBXgQEvoGU.mYTAb19CHdxOwGYRsoVN33VsxRj8NYpTLAyxgZuCRAz8oaLTrDv4veLyN+Q2YG6xbSV4d9Kyct+4z737s5HWGI3VhLeAy0mflShCzcmvMtgOfkzzbA7Q87NUYR7ELTr+zya3jQALoQCrbiFX4GahsBbWkwvRXfBR0CPKJjjKKKWNeBma+UMv6aY5m6S7WDEYH6LRxcJWjdO7lHE2i4VhNY6aQHG30NWB.PjvBWm9jpNsHjegu3DvQEKfOoIk08fkjHcQxgZPZpB9UqrY8MZoV+I5fqJHOwoxdKVv.ob71oDxofX.fnwA7QBYmRDPEI32ePf5xAqH+tS1opqgjMI2uGtHJH9VuK4DqAeMOfW7EJRKzvznMIs5cMwGdLzC8bu1FJoGkbcVB6ZNXAaZe.8RHv4JWykiMwMHLyaI3y4v0LTJnNGaLF5Lvktfap6EapjAMg4t9I4eAM30NYXdz6W831Iwg8IqnTxr93OJPu0MDjlTH1TncNWKPlIlwVSBbFVlF91Go.tqxUGyWLEjIwakXft5Pt7vnaI2w8ETh.VenM5ki.QVuS1I8ZfIYk8BJX41Bjecuu14LrLlqCpGhyB7GOYvItUv9zPLo6kDOxWTnmWyLg3P2afXPBNbHerx8t3nE4Nt3m9SIRu00btWNvk3KhfKCvslAn5KJLwwEMENLj1.Xa.+IB5vO0bT1Hpv2Z.QSelH9dDY1oYvxnWRGR3NQFZf8l5v4BYUgbLHtgA9CZTuI9Z1.p2I.okwf+cMB9Q+rHmT3QSKNovLfH0ij.wm7yB+ZLMTC6wl3VCS+c7WWHjJ+5ERt1o+BeA5HTwPU2Fe6irC3+ReE4CPldWOFMmxz.O7lw8Djg5lomhnsD78sBeEFEky6kRKPLAy3oWZJN2eKXs.jB9ZbAr8pgFOT6QsA4Kp.ZZEBgCYIWMKgJUvBEGf3jxtEtCifL.ISYFzKe3C8tXLkwWLltwHPtiMji8pUxMv.780B9d3fdbDGHbuuGehWPo9A+8W+9rA+Ea4ctKJg+KvEpULkbfhOLTMsCARrHF1s2xqVozBaLVBkvIH.IwaEOx37sujbzld25JSBUfPO+oOWblGuJP53VAzvJIrR7EPSr8FIDy3FFMa5Vj3hYzq2Nta7IZFtlxwVxw.Pf.W55zHHiyZnqKWhEahX.A.7cGr39h9zxMtwO.eZqBtHVRoIxIIhJu6IWdYPQd7GUOK1.j3VzeC5Wfwh5RTiRWOq3jjXdttTgsbtVeXt.mdDAhqQbF+nrdOIsEnXmmBH9oslHHVshwd.V4cUUgEAimbiXBhdEkRnUVVwsbuJphix.rgFt.fM9TleZfEXwsbtZp7ty1b6oROojCS1A2WVWGvc+4UuuWBVA6x.KbQtFrHbwqkykGlykENsGGb5vbPGqD34xJYtWXO7thK0kFnhSvUmlMFlKFGugSG+j9bUGl5VGGhjkgVWJ9ZpfaMUvslbEUwWnuhgYXTEA5WwG4Z5vWanuN.IWDYTsMOU.OAEJ1H5hMhtNyILgIElZlBLXRvduAPAHrvijeGnutNtR6u3uXXY+YmxgK4.ePRxgw5xoYLEbsbfsBFsBBp6fM8PzJpYqQG0KDDyCaOJILGKirE4F6kzMrHPvzXSSmN8nIJvbMw46bcxPNZcK4PeESl1wKwgttJ9AdgN64rX38VDwcQZ2+OFOFmDtLROpdLBfXQcZLvdMnZMw613jvuQ7NNx4xucofXbcLZ9NFI6pAXlA8eLnNPDmZZFN4fMjR+1dD8gL5DaLtQFQ+HwngDzUxH6KYjbljNgtyAQ4HdOJoCaO334QYz8mj1C0cQlgxkxHi5EXw7g0eBSOQh9ThdmC6IzPm.iUfwXfGGwrCqikQy4hmeE5c6oiyDeUD1ah0jzvkXtVWOk3JZzG9xYNid0xYj2vSFXuQSU3UDmQwbcgeb7L86ONlBYZoP79lNVi0YH8KU334WRrOxbC53bFIeRinWoutGRSfQz3cUce0qJD2nadk1gzYiL5LmQdNijFRmQYeEwYz.nSkL28LeTm4i5aBeTeSNxIVeXv+cH0ayMtQeVmqXW7w3WuIZiPVESM7pXFdY47cOlVanq1CwKwo2lbSGsOdy6i2Sq++HHeFLC
      
      posted in Scripting
      ChazroxC
      Chazrox
    • RE: How to reliably save samplemaps in preset? (Expansions)

      @Straticah Have you tried calling presets by its name? I do that because if I add new presets AND sort in alphabetical order, the index obviously changes and will break my presets.

      posted in General Questions
      ChazroxC
      Chazrox
    • RE: SliderPack LAF

      @ILIAM you have to either change your slider pack 'max' to 11 or add another row in your grid and slider laf.

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: LAF errors

      @d-healey 'Colours' took some getting used to now I cant spell it any other way. haha.

      posted in Scripting
      ChazroxC
      Chazrox
    • RE: Rename Monolith Files?

      @d-healey I didnt completely figure it out what I may have done wrong. I just started those from scratch and left it alone. ha. I'll let you know if I figure out what I did.

      posted in Scripting
      ChazroxC
      Chazrox