HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. bendurso
    • Profile
    • Following 0
    • Followers 0
    • Topics 76
    • Posts 502
    • Groups 0

    bendurso

    @bendurso

    82
    Reputation
    68
    Profile views
    502
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online
    Age 29
    Website zaksound.com
    Location Argentina

    bendurso Unfollow Follow

    Best posts made by bendurso

    • 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

    Latest posts made by bendurso

    • RE: Audiowaveform repaint failed

      @hisefilo said in Audiowaveform repaint failed:

      I wasn't able to repaint the AudioWaveform floating tile. I think it's a bug. I had to do something like this to make it work:

      ftAudioWaveForm.set("visible", false);
      
      Content.callAfterDelay(30, function() 
      {
          ftAudioWaveForm.set("visible", true);
      });	
      
      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey Thanks, I removed the extra preset handler, but it still keeps crashing for him. I think my code is pretty clean now.

      I'm starting to think the issue might be with the macros. I was thinking of disabling the macro modulation source before the preset change and re-enabling it afterward. Any other ideas regarding macros? I saw another post where @hisefilo had issues with preset changes involving macros.

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey I will check. And is it bad to use Engine.createUserPresetHandler and PresetHandler.setPostCallback in two different namespaces?

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey Great, thanks. I changed that but it keep crashing for him. This time it crashed right after he pressed the next button; the plugin didnt load anything more (I can see from the debug log).

      This is my script for next preset:

      inline function onbtnNextPresetControl(component, value)
      {
      	if (value)
      	{
      	Engine.loadNextUserPreset(0);
      	LookAndFeel.presetDisplayName = Engine.getCurrentUserPresetName();
      	LookAndFeel.btnPresetSelect.sendRepaintMessage();
      	}
      };
      
      Content.getComponent("btnNextPreset").setControlCallback(onbtnNextPresetControl);
      

      presetDisplayName is a variable I have in the LookAndFeel namespace where I store the name of the current preset.
      And btnPresetSelect is the button to display the preset name and to open the preset browser.

      Oh and the LookAndFeel namespace has 2600 lines. I'm not sure if this is relevant.

      Is there something wrong here that could cause a crash?

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey Ok, cool — I'll give it a try, thanks! But do you think removing the conditional for searching audio files in the source code, just to be able to declare the empty hardcoded master FXs on init, is a bad idea? I compiled it and it seems to work fine :) I'm not sure yet if it solves the crashes though.

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey said in Preset Crash:

      createAndRegisterAudioFile

      So, instead of using getAudioSampleProcessor for loading the impulse responses, I can use Engine.createAndRegisterAudioFile(), and I should compile the convolution reverb with 36 different external slots?

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey I have 6 layers and 6 hardcoded master FX slots per layer. Users can load any effect into these hardcoded master FX slots. There are like 8 available networks, including the convolution reverb. Any of these effects—convolution included—can be loaded into any of the 36 hardcoded master FX slots :)

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey I found the source code for that API. https://github.com/christophhart/HISE/blob/372a9e682cff2f3b52ee432ae50977fc95d9173c/hi_scripting/scripting/api/ScriptingApi.cpp#L5997

      If I remove this check (Line 6009) I can declare an empty Hardcoded Master FX on init.

      if (asp->getNumDataObjects(ExternalData::DataType::AudioFile) > 0)
      

      Is this safe to do? Or there is a better way to handle it? @Christoph-Hart ? Thanks

      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey

      Only after I load the Convolution Reverb network on HardcodedMasterFX1 I can get Synth.getAudioSampleProcessor. And in my plugin all hardcoded master fxs are empty on init.

      HiseSnippet 760.3ocuU00SaCCE0tsFs1MlFRr2i3IXBgRnsrhPSCneLp1ZoZkg3MjqiC0pI1QINvpl1+48OXyNIzzR6ftpskGp58q3SN2y85dABBMLTD.fktXrOE.eAp+XtbX8gXFGztA.9RTGbnjFXj35zw93vPpM.By+AsCXwBf3me79SwtXNgl4B.tTvHzOw7XxLu8N9iLW2VXa5ELuoxtxwsIBdcgqHRgm7HSfOlLBeCsKVmVND3Lb3P.7MnA16aZac.olk09UqVybPsxjCGT1AWtBEO3PyZV3Cq5XVA.WqoMSJB5KwRZn5kdpvdb+gh63IGvkrP1.Wp1vBzWcxItA0Gxbs6cO4DB.vB8xnp7IT0lnNLa1D+YT1qhCXjUwzjFL2iAIq+.HAmBRERfzFn9j.luLKhFOOG0lq5fNXUuYZnjjKH25PTcgJCtbOO7HZq.kwjJ19.SycMT+ryQkJo5OgRiShrYhIGgw6LhkL6cCUFGoO1y2kNI91acFNvlHro1IJoVWYs0NG4DwIRlfaH3cER547s2oz2JUrz2KY7vPNNKLlFyABWWZvBCqEWAOVgayi7FPC103VraDcRhJxb1NzZKWGhjPgSknf2lyjm6SSsaIbs0Lu9+y2OAo8.0+9R6FXIV2hS8oxymFHYZ3.aPuUMTkzvKhZPCGIE9pwp4TCJcnvNxEKmUbpGaSCn3iYTD5tNOjIGO8X8CUrE987g4T7wS70tjvcCTOljLbw3M2Bvqh09Wi2z4+0QMcbnDYFXKfZc0iNrWX4jRYPYYG7eMZxPlQ59ZETzXZSz7ieyfwtT4chfQ5U+cEF76sx+WZME3yhHIieSGrLf8U.D0MxquZCOgp3MNm5pd4HXNs9Ow1Taq6i8ob6XiepdRCZosgoAstO3+kyvCSBDWSR1cnaCOK1i56lGe+TQ0EkJaCKP79joUjdpqCtlPl8UMWg6upEVdUKrxpVX0UsvCV0Be6pVXsmtP8s0mDIEdIKX.fN8ZFu.FBaxwJUd7bB3W.WeCizC
      
      posted in General Questions
      bendursoB
      bendurso
    • RE: Preset Crash

      @d-healey Yes, but the problem with this one is that Hise returns error if I declare on init, because there's no effect loaded on the hardcoded master fx.

      posted in General Questions
      bendursoB
      bendurso