HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. bendurso
    3. Best
    • Profile
    • Following 0
    • Followers 0
    • Topics 81
    • Posts 538
    • Groups 0

    Posts

    Recent Best Controversial
    • Automatic Installer for Windows: Inno Setup Script

      Hello!

      I thought that maybe for some this Inno Setup script could be useful. It installs the plugin + samples automatically on the user's computer.

      It does the following:

      1. Asks the user where they have their VST3 plugins folder. {commoncf}\VST3 is selected by default, but the user can change it.
      2. It then asks where you want to install the samples.
      3. And finally it creates the LinkWindows file with the chosen location of the samples.

      (In this case I also added the file "AudioResources.dat" so that it is automatically installed in the userappdata folder)

      In this way, the user simply opens the plugin and already has everything configured.

      Paying attention to the * symbol at the end of the source file location because it includes the folders inside the selected folder. For example, inside the "D:\Downtown Grand Piano\Samples Folder*" location I have the folder called Downtown Grand Piano Samples. Inno Setup will include the folder inside “Samples Folder”, which is "Downtown Grand Piano Samples" (You can check the Inno Setup documentation if you need to understand this better.)
      Then the linkWindows file is autogenerated with the location chosen by the user + \Downtown Grand Piano Samples at the end.

      (I received help from GPT to automatically generate the linkWindows file, although it took me some time to make it work properly)

      [Files]
      Source: "D:\Downtown Grand Piano\AudioResources.dat"; DestDir: "{userappdata}\ZAK Sound\Downtown Grand Piano"; 
      Source: "D:\Downtown Grand Piano\VST3 File\*"; DestDir: "{code:GetVst3Directory}"; Flags: recursesubdirs
      Source: "D:\Downtown Grand Piano\Samples Folder\*"; DestDir: "{code:GetSampleDirectory}"; Flags: recursesubdirs createallsubdirs
      
      [Code]
      var
        Vst3DirectoryPage: TInputDirWizardPage;
        SampleDirectoryPage: TInputDirWizardPage;
      
      procedure InitializeWizard;
      begin
          SampleDirectoryPage := CreateInputDirPage(wpSelectDir, 'Select Samples Directory', 'Where would you like to install the samples?', 'Select the location where you want to install the samples (2.58GB). You can use an external drive if you have one.', False, '');
          SampleDirectoryPage.Add('');
          SampleDirectoryPage.Values[0] := ExpandConstant('{commoncf}\VST3\Downtown Grand Piano');
          
          Vst3DirectoryPage := CreateInputDirPage(wpSelectDir, 'Select VST3 Directory', 'Where would you like to install the VST3 file?', 'Select the default location of your VST3 plugins. In most cases, there is no need to make any changes.', False, 'Size: 29MB');
          Vst3DirectoryPage.Add('');
          Vst3DirectoryPage.Values[0] := ExpandConstant('{commoncf}\VST3');
      
       end;
      
      function GetVst3Directory(Param: String): String;
      begin
        Result := Vst3DirectoryPage.Values[0];
      end;
      
      function GetSampleDirectory(Param: String): String;
      begin
        Result := SampleDirectoryPage.Values[0];
      end;
      
      
      procedure CurStepChanged(CurStep: TSetupStep);
      var
        LinkWindowsFilePath: string;
        LinkWindowsFileContent: string;
        SampleDirectory: string;
        BaseDirectory: string;
      begin
        if CurStep = ssInstall then
        begin
          BaseDirectory := ExpandConstant('{userappdata}\ZAK Sound\Downtown Grand Piano');
          ForceDirectories(BaseDirectory);
      
          LinkWindowsFilePath := BaseDirectory + '\LinkWindows';
          if FileExists(LinkWindowsFilePath) then
            DeleteFile(LinkWindowsFilePath);
      
          SampleDirectory := GetSampleDirectory('');
      
          LinkWindowsFileContent := SampleDirectory + '\Downtown Grand Piano Samples';
      
          SaveStringToFile(LinkWindowsFilePath, LinkWindowsFileContent, False);
      
      posted in Blog Entries
      bendursoB
      bendurso
    • RE: Waveform LAF / PR

      @bendurso Well, I just made my own svg paths for the waveforms. If someone needs them, here it goes:

      Sine
      110,109,0,0,0,0,0,0,72,66,98,0,0,200,65,0,0,0,0,0,0,150,66,0,0,200,66,0,0,200,66,0,0,72,66,101,0,0
      
      Saw
      110,109,0,0,200,66,0,0,72,66,108,0,0,200,66,0,0,0,0,108,0,0,72,67,0,0,200,66,108,0,0,72,67,0,0,72,66,99,101,0,0
      
      Square
      110,109,0,0,0,0,0,0,200,66,108,0,0,0,0,0,0,72,66,108,0,0,72,66,0,0,72,66,108,0,0,72,66,0,0,200,66,99,109,0,0,72,66,0,0,0,0,108,0,0,72,66,0,0,72,66,108,0,0,200,66,0,0,72,66,108,0,0,200,66,0,0,0,0,99,101,0,0
      
      Triangle
      110,109,0,0,0,0,0,0,72,66,108,0,0,72,66,0,0,0,0,108,0,0,200,66,0,0,72,66,108,0,0,22,67,0,0,200,66,108,0,0,72,67,0,0,72,66,101,0,0
      
      Random
      110,109,0,0,0,0,0,0,72,66,108,0,0,160,65,0,0,72,66,108,0,0,160,65,0,0,240,65,108,0,0,32,66,0,0,240,65,108,0,0,32,66,0,0,160,66,108,0,0,112,66,0,0,160,66,108,0,0,112,66,0,0,160,65,108,0,0,160,66,0,0,160,65,108,0,0,160,66,0,0,112,66,108,0,0,200,66,0,0,
      112,66,108,0,0,200,66,0,0,32,65,108,0,0,240,66,0,0,32,65,108,0,0,240,66,0,0,180,66,108,0,0,12,67,0,0,180,66,108,0,0,12,67,0,0,32,66,108,0,0,32,67,0,0,32,66,108,0,0,32,67,0,0,140,66,108,0,0,52,67,0,0,140,66,108,0,0,52,67,0,0,72,66,108,0,0,72,67,0,0,72,
      66,101,0,0
      

      They're SVG paths. So you can customize them within a panel :)

      posted in General Questions
      bendursoB
      bendurso
    • RE: scroll event for script panel mouse callback

      @oskarsh Another friendly bump.

      I want to use it to move panels down/up.

      posted in Feature Requests
      bendursoB
      bendurso
    • RE: Reference Multiple Convolution Nodes in ScriptNode

      @d-healey oh, I found the solution on this post: https://forum.hise.audio/topic/4355/changing-impulses-in-scriptnode/15

      posted in ScriptNode
      bendursoB
      bendurso
    • RE: Zak Sounds Particles animation

      @d-healey It works on mine, and it's a M2. I didn't receive any complaints either.

      posted in General Questions
      bendursoB
      bendurso
    • RE: Compiling macOS Components and VST3 Doesn't Put Them in the Project Folder

      @d-healey said in Compiling macOS Components and VST3 Doesn't Put Them in the Project Folder:

      In a recent commit of HISE Christoph removed the copy step so it should no longer be moving the plugin files automatically (although this might only apply on the latest MacOS version I'm not sure).

      I can confirm. I'm using Sonoma 14.3.1, and the compiled plugins are now located inside the project folder. That was a good surprise :)

      posted in General Questions
      bendursoB
      bendurso
    • RE: Parametric eq is not saved in Presets?

      @ThinkTank You have to add this:

      const var ParametriqEQ1 = Synth.getEffect("Parametriq EQ1");
      Engine.addModuleStateToUserPreset("Parametriq EQ1");
      

      (Replace ParametriqEQ1 with your real EQ name)

      posted in General Questions
      bendursoB
      bendurso
    • RE: Joining two projects?

      @alfaholic This is how to copy/paste components: https://forum.hise.audio/topic/4408/copy-paste-component-following-feature-requests-thread?_=1696542841615

      posted in General Questions
      bendursoB
      bendurso
    • RE: Wavetable convertion?

      @bendurso I just realized that setting the Source Length to the same sample length (2048, I was using Automatic mode before) and enabling FLAC compression does the trick to obtain the same file as the example.

      posted in General Questions
      bendursoB
      bendurso
    • RE: New Website

      Beautiful page. I think the commercial license prices and FAQ are very useful for new potential users who want to use Hise :)

      posted in General Questions
      bendursoB
      bendurso
    • RE: Turn a unit on/off

      @VirtualVirgin Like this:

      const-var-container.gif

      (right click on the container)

      posted in General Questions
      bendursoB
      bendurso
    • RE: Sampler Not Working After Exporting VST/AU in HISE

      @miguellizana Did you check if there is some gain module or something like this blocking the sound? Once it happened to me that in the exported plugin I had the volume set to zero.

      posted in General Questions
      bendursoB
      bendurso
    • RE: Polyshape FX mode. How to ?

      @d-healey Hmm, it didn't work. However, I just realized that I only needed to trigger the ComboIndex, and it worked (as you mentioned initially). Thank you :)

      inline function oncmbPolyShape2Control(component, value)
      {
              Polyshape2.setAttribute(Polyshape2.Mode, ComboIndex[value - 1]);
      }
      
      posted in Bug Reports
      bendursoB
      bendurso
    • RE: Choose Specific LFO Shapes via Knob or Button

      @DabDab This is what David said turned into a snippet :)

      HiseSnippet 1053.3oc0V8taaaCDmx1pn16OHEqO.B4SNXdA1MooqHXXtwIdvXwIFSdcCHnnfl5rMQjHUknRiwPeF1aydL1yxdC1NJIaQ03kjZj8g4OXHd+g2Od79cGGEIYPbrLhXUe7hPfX841tKDp48lS4BxfiIVeo8PZrBhbxDczhPZbL3Qrrp9CZAV0qQR+8We+QTepfAEhHjWK4L3Td.WUHcT2ej662m5Ai4AFVue2ALonmzWlf3opcaRHkcIcFbFUaVEah0iNwiqjQtJpBhIV0NR5svct78hL6eMOlOwGzK5PbwMJSbeoumFw5uI8ly88Fs7bGSvcYTQVnZVV3o1C4d7UxKxFakpvovCy7gUkxvqZI30wDdsMf2ZfjkAjpkAomX6xh3gpBMZ77Y1CD3kyTJl1MgRlsjJurhcOIZgPsa.8RneDtXkGMOnc6VN3e6bXiFXpOV4bEEunkASjGIutiy24rz4YfBEGJE3hlauxhsWimCDdv0nqWzokyyZ4rWKm8a47h2bngcm1+7gRuDeJlrzQIsjSGiURatMZiSgQoAhK74BvYZhfo3RgitXIGHZbFI8axVBxVXf7SfcZ7aMpWJb6FCpWoTQ7IIJnYYU+B8JnuLJPmwaYbZtHcub9FmNuAwwGPnbm4EcXxAUOpu+DrRt4Mw6NGZbXNSpfyEMSgbiOzv4iUMc5Z0kuU9PzZUq4XQ2liMEIASfHyDl1Prvqb07i92qlMIarrLiggRw.AWcdHjutfN1YM09j7TqlEjiPzTUJGXqbNvxzHg6oo.qxpjzifYKIxOO3Xphtbyv8EiUHDo35ij0wvUX+oLBVc6ig3KUxvTayuSwi88LzWSrrs9SLnKze7G3GbEDfAww1EqZaLNhSEy7gFtz22v8cIzH7SEDFSBno9Zm1a7F7driyxBTy1P5du4JvayRbeM+VDyUKLSDebuoZ2uay6n0oYepsxvqsMxoxAYYN7cCx9Qv6R.AyP3i6pGTLnXNS2euqllNMmlZ59ovLLPlRFC38H1cgYNSxMPJUy4hYkG+7ztmJkgmHnXZvybSFMmFqYeHitz1fa6XY1vwd9R1klJGLSHifLFso7dIwJYvxCP5PMcQPZMp0E1Gr+t3uoes9+W1C+auyeXVS9DlM041mMU4dVi9UoW+qtm0EBOnkosWaY5Zao7Ig3UEg+O.wOwdDWwlu9FAUVCdIj+ywa9Sn9B6SlNEXpBvVyt+udquW5gAJ+jLQgj6gTbFutw5YIAt3KJY.hDg.7i0Maqn4hYqaqWmRnAgW5h+F+kqridsUtxNKUhsrYQx2xxFOoIEONUBhIQ5aUqiOZFW6biIRDR.99w2xXk2pa33y1TG2aScb+M0wmuoNdvl53K1TG+161Q8y6eUB1iNiNQHCGcRV2YqUiFrpR9G.Ii9IR
      

      I just saw you said a knob, I used a combo box, but it's the same concept for a knob.

      posted in Scripting
      bendursoB
      bendurso
    • RE: Move the view, how?

      @Matt_SF @Morphoice I've been working with Hise for about two years now and never knew how to move around the GUI. Until I found this, this changed my life haha

      posted in General Questions
      bendursoB
      bendurso
    • RE: SampleMaps and expansions issue.

      @CyberGen And what if you load the samples and samplemaps into the main plugin? Then you could use them in all the expansions I think.

      posted in General Questions
      bendursoB
      bendurso
    • RE: Change .HR1 Extension Worked

      @clevername27 @d-healey Oh yes, I was referring to the .hr1 file that unpacks the ch files and everything related to the expansion.

      To change .hr1, I simply changed the letters; then to install the expansion I changed the String Wilcard of FileSystem.browse() to the new one

      posted in General Questions
      bendursoB
      bendurso
    • RE: FrontEndMacro: Display Parameter Text Instead of Parameter ID

      @d-healey I found that the display parameter is set by this function on line 1473 of FrontendPanelTypes.cpp

      juce::String FrontendMacroPanel::getCellText(int rowNumber, int columnId) const
      {
      	hise::SimpleReadWriteLock::ScopedReadLock sl(connectionLock);
      
      	if (auto data = connectionList[rowNumber].get())
      	{
      		if (columnId == ColumnId::ParameterName)
      			return data->getParameterName();
      		else if (columnId == ColumnId::CCNumber)
      			return getData(data)->getMacroName();
      	}
      
      	return {};
      }
      

      I asked to Claude to change it to Automated parameter name (I also provided it the code of midi learn panel, because is the working example of what I want), and it gave me a working code:

      juce::String FrontendMacroPanel::getCellText(int rowNumber, int columnId) const
      {
          hise::SimpleReadWriteLock::ScopedReadLock sl(connectionLock);
      
          if (auto data = connectionList[rowNumber].get())
          {
              if (columnId == ColumnId::ParameterName)
              {
                  auto* processor = data->getProcessor();
                  int parameterIndex = data->getParameter();
                  
                  return hise::ProcessorHelpers::getPrettyNameForAutomatedParameter(processor, parameterIndex);
              }
              else if (columnId == ColumnId::CCNumber)
                  return getData(data)->getMacroName();
          }
      
          return {};
      }
      

      Now it displays the automated parameter name of the knobs on the FrontendMacroPanel :)

      Can someone check if the syntax is correct? I mean, it compiled without issues, but maybe could crash in the future if something is wong hehe.
      Maybe it can be added/modified to the Hise code on github.

      posted in General Questions
      bendursoB
      bendurso
    • RE: Confused about Exporting/Installing Expansions

      @d-healey Ooh, I had read that part but since I had not found that section in Hise I omitted it. I finally found it and now it works fine! Thank you :)

      posted in General Questions
      bendursoB
      bendurso
    • RE: Indie license

      @Christoph-Hart Oh got it, you can use Juce 6, but you have to follow the rules of Juce 8 (whatever starter, indie or pro)

      posted in General Questions
      bendursoB
      bendurso