Forum
    • Categories
    • Register
    • Login
    1. Home
    2. tomekslesicki
    T
    • Profile
    • Following 0
    • Followers 2
    • Topics 112
    • Posts 617
    • Groups 1

    tomekslesicki

    @tomekslesicki

    Beta Testers

    111
    Reputation
    324
    Profile views
    617
    Posts
    2
    Followers
    0
    Following
    Joined
    Last Online

    tomekslesicki Unfollow Follow
    Beta Testers

    Best posts made by tomekslesicki

    • RE: Merry Christmas

      Happy holidays, guys!

      posted in General Questions
      T
      tomekslesicki
    • Simplified install - MY SOLUTION

      Hey guys! You helped me a lot as I had questions on my HISE journey and there's something I'd like to share with you:

      THE PROBLEM
      One of the most confusing (read: support-email-generating) things about HISE is the sample folder location. Unlike Kontakt, it doesn't look into subfolders. Plus, since HISE exports the plugins as standard formats, chances are, some people who'd get the instruments might not have had any previous experience with samples or Kontakt and would be surprised that after they've installed the plugin, things don't work right away.

      SO...
      I wrote a script (ok, two in fact - one is for Mac, the other for Windows) that solves this by auto-generating the link file and placing in the correct folder. When the user runs the installer, there's an option to locate the samples automatically. There's only one requirement for this to work - the samples need to be distributed along with the installer. I'm using Pulse to simplify the download process and it's perfect for that. The most recent versions added update functionality so if a new version of the plugin is out, it will be downloaded into the samples folder and auto-run. I'm sure there are other solutions out there but it's just something that I'm using.

      HOW TO: MAC
      Create a text file with .sh extension (so for example, yourinstrument_locatesamples.sh) and set it as a post-install script in Whitebox Packages. I'm using it as a separate component named locate samples so that the user has an option to have it selected or not.

      Here's the script:

      #!/bin/sh
      
      instrumentname="Blisko Cello"
      devname="Felt Instruments"
      
      FILE="$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
      if test -n "$FILE"; then
      		rm -R "$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
      
      fi
      
      installer="${instrumentname}".pkg
      mystring=$1
      echo basename: $(basename "${mystring}")
      echo basename + remove "${installer}": $(basename "${mystring}" "${installer}")
      sudo echo -n $(dirname "${mystring}") > "$HOME/Library/Application Support/${devname}/${instrumentname}/LinkOSX"
      
      
      exit 0
      

      You only have to adapt the first two lines - instrumentname and devname. Export the installer as instrumentname.pkg and you should be fine.

      HOW TO: WINDOWS
      I'm using innosetup on Windows. Here's the whole script:

      [Setup]
      
      #define AppName "Blisko Cello"
      #define AppVersion "1.1.2"
      #define DevDir "Felt Instruments"
      PrivilegesRequired=admin
      AppName={#AppName}
      AppVersion={#AppVersion}
      SignTool=signtool
      SignedUninstaller=yes
      
      DefaultDirName={pf}\{#DevDir}\{#AppName}
      DefaultGroupName={#AppName}
      Compression=lzma2
      SolidCompression=yes
      OutputDir=.\installerbuild
      ArchitecturesInstallIn64BitMode=x64
      OutputBaseFilename={#AppName}
      LicenseFile=".\installerAssets\EULA.rtf"
      WizardSmallImageFile=".\installerAssets\install_logo.bmp"
      
      
      
      ; BANNER
      WizardImageFile=".\installerAssets\banner_blisko_cello.bmp"
      SetupIconFile=".\installerAssets\windows_icon.ico"
      DisableWelcomePage=no
      DisableDirPage=yes
      DisableProgramGroupPage=yes
      
      
      SetupLogging=yes
      ChangesAssociations=no
      
      [Types]
      Name: "full"; Description: "Full installation"
      Name: "custom"; Description: "Custom installation"; Flags: iscustom
      
      [Dirs]
      Name: "{app}\"; Permissions: users-modify powerusers-modify admins-modify system-modify
      
      [Components]
      Name: "vst2_32"; Description: "{#AppName} {#AppVersion} 32-bit VST Plugin"; Types: full custom;
      Name: "vst2_64"; Description: "{#AppName} {#AppVersion} 64-bit VST Plugin"; Types: full custom; Check: Is64BitInstallMode; 
      Name: "aax"; Description: "{#AppName} {#AppVersion} AAX Plugin"; Types: full custom; Check: Is64BitInstallMode;
      Name: "locatesamples"; Description: "Locate samples (recommended!)"; Types: full custom;
      
      
      
      
      
      [Files]
      
      ; VST
      Source: "{#AppName} x86.dll"; DestDir: "{code:GetVST2Dir_32}"; Flags: ignoreversion; Components: vst2_32; Check: not Is64BitInstallMode
      
      Source: "{#AppName} x86.dll"; DestDir: "{code:GetVST2Dir_32}\{#DevDir}"; Flags: ignoreversion; Components: vst2_32; Check: Is64BitInstallMode
      Source: "{#AppName} x64.dll"; DestDir: "{code:GetVST2Dir_64}\{#DevDir}"; Flags: ignoreversion; Components: vst2_64; Check: Is64BitInstallMode
      
      ;BEGIN_AAX
      Source: "{#AppName}.aaxplugin\*"; DestDir: "{commonpf}\Common Files\Avid\Audio\Plug-Ins\{#AppName}.aaxplugin"; Flags:ignoreversion createallsubdirs recursesubdirs overwritereadonly; Components: aax
      ;END_AAX
      
      ; PRESETS
      Source: "{#AppName} UserPresets\*"; DestDir: "{userappdata}\{#DevDir}\{#AppName}\User Presets"; Flags: ignoreversion recursesubdirs;
      
      
      ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
      
      
      
      
      
      
      
      
      
      
      [Icons]
      Name: "{group}\Uninstall {#AppName}"; Filename: "{app}\Uninstall{#AppName}.exe"    
      
      [Code]
      var
        OkToCopyLog : Boolean;
        VST2DirPage_32: TInputDirWizardPage;
        VST2DirPage_64: TInputDirWizardPage;
        SamplesDirPage: TInputDirWizardPage;
        SampleLocation: String;
        AppDataFolder: String;
      
      
      function SampleFolderLocated(): boolean;
      begin
        result := FileExists(ExpandConstant('{userappdata}\{#DevDir}\{#AppName}\LinkWindows')) and (not IsComponentSelected('locatesamples'));
      end;
      
      
      procedure InitializeWizard;
      
      begin
      
        if IsWin64 then begin
          VST2DirPage_64 := CreateInputDirPage(wpSelectDir,
          'Confirm 64-Bit VST2 Plugin Directory', '',
          'Select the folder in which setup should install the 64-bit VST2 Plugin(you can choose not to install this version later),  then click Next.',
          False, '');
          VST2DirPage_64.Add('');
          VST2DirPage_64.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{pf}\Steinberg\VSTPlugins}\');
      
          VST2DirPage_32 := CreateInputDirPage(wpSelectDir,
            'Confirm 32-Bit VST2 Plugin Directory', '',
            'Select the folder in which setup should install the 32-bit VST2 Plugin(you can choose not to install this version later), then click Next.',
            False, '');
          VST2DirPage_32.Add('');
          VST2DirPage_32.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\WOW6432NODE\VST,VSTPluginsPath|{pf32}\Steinberg\VSTPlugins}\');
      
        end else begin
          VST2DirPage_32 := CreateInputDirPage(wpSelectDir,
            'Confirm 32-Bit VST2 Plugin Directory', '',
            'Select the folder in which setup should install the 32-bit VST2 Plugin,  then click Next.',
            False, '');
          VST2DirPage_32.Add('');
          VST2DirPage_32.Values[0] := ExpandConstant('{reg:HKLM\SOFTWARE\VST,VSTPluginsPath|{pf}\Steinberg\VSTPlugins}\');
        end;
      end;
      
      function GetVST2Dir_32(Param: String): String;
      begin
        Result := VST2DirPage_32.Values[0]
      end;
      
      function GetVST2Dir_64(Param: String): String;
      begin
        Result := VST2DirPage_64.Values[0]
      end;
      
      function GetSamplesDir(Param: String): String;
      begin
        Result := SamplesDirPage.Values[0]
      end;
      
      procedure CurStepChanged(CurStep: TSetupStep);
      
      
      
      begin
        if CurStep = ssDone then
          OkToCopyLog := True;
      
          if not SampleFolderLocated() then begin
          SampleLocation := ExpandConstant('{src}');
          AppDataFolder := ExpandConstant('{userappdata}\{#DevDir}\{#AppName}\LinkWindows');
          SaveStringToFile(AppDataFolder, SampleLocation, False);
          end else
      end;
      
      procedure DeinitializeSetup();
      
      begin
        if OkToCopyLog then
          FileCopy (ExpandConstant ('{log}'), ExpandConstant ('{app}\InstallationLogFile.log'), FALSE);
        RestartReplace (ExpandConstant ('{log}'), '');
      end;
      
      [UninstallDelete]
      Type: files; Name: "{app}\InstallationLogFile.log"
      

      What you need to edit is the first block and the banner .bmp file if you're using that.

      That's all folks. Hopefully it will be useful to some of you!

      posted in Presets / Scripts / Ideas
      T
      tomekslesicki
    • RE: "The sample directory does not exist" - how can I change this text?

      Ok, to hide the popup, you need to comment out line 130 in FrontentBar.cpp file (PresetHandler::showMessageWindow("Sample Folder changed).

      The "The sample directory does not exist" text can be changed by editing line 197 in ModulatorSamplerData.cpp (the one below "sampler->getMainController()->sendOverlayMessage(DeactiveOverlay::State::CustomErrorMessage,").

      Hope this helps somebody! :-)

      posted in General Questions
      T
      tomekslesicki
    • RE: Roadmap to HISE 5

      I just wanted to chime in and say I really appreciate your work, and that the recent additions are awesome. Thank you!

      posted in General Questions
      T
      tomekslesicki
    • RE: PLUGIN DELIVERY: Latest & Greatest?

      I've been using Pulse since 2019, and I'm the guy who worked with them on native HISE support. Recently the ownership changed, and even though we - people who were using Pulse - were told that the terms of operation are going to stay unchanged, they informed me that they'll actually change the terms for me anyway. It was 10th of March or so, and they said something like "hey, we're changing the terms for you, and they'll affect your pricing from March 1st". Not a very respectful way to do business, in my opinion.

      Also, keep in mind that all Pulse does is it gets the multi-zip archives from the server and unpacks them. There's no license management or anything like that.

      Anyway - I'm using a custom installer now I built with HISE. You can pretty much replicate all Pulse does with this @d-healey (thank you!) tutorial: https://www.youtube.com/watch?v=mqGsqJoBxiQ

      posted in General Questions
      T
      tomekslesicki
    • RE: The definitive feature request & bug fix roadmap

      Feature request: global modulators on FX plugins!

      Done: https://github.com/christophhart/HISE/commit/7028aa13c3c5612bf152620a3d1a8ca94702bc8b

      posted in Feature Requests
      T
      tomekslesicki
    • RE: The definitive feature request & bug fix roadmap

      Bug report: interruptions in audio when using convolution fx plugins and Cubase’s Direct Offline Processing: https://forum.hise.audio/topic/4247/cubase-direct-offline-processing-audio-dropouts-on-fx-plugins/9

      posted in Feature Requests
      T
      tomekslesicki
    • RE: Tell me about NKS and MPE in HISE

      @ustk I’d add to that that the experience of playing an MPE keyboard is way different than your standard keys + mod wheel, so I’d recommend getting at least the Seaboard Block to get it right for the users

      posted in General Questions
      T
      tomekslesicki
    • RE: HISE not building M1 architecture by default when exporting

      @Casey-Kolb I think it's because AAX doesn't support M1 yet

      posted in General Questions
      T
      tomekslesicki
    • RE: Packages not updating files on OSX 10.12

      I figured it out and thought I'd post the solution here, maybe you'll find it useful. Create a file called YourInstrument.sh (I used SublimeText to do that but I guess you can create it in whatever really). Load it into Packages as a pre-install script. The file should contain the following code:

      #!/bin/sh
      
      FILE=$HOME/Library/Audio/Plug-Ins/Components/YourFile.component
      if test -n "$FILE"; then
      		rm -R $HOME/Library/Audio/Plug-Ins/Components/YourFile.component
      
      fi
      
      exit 0
      

      If you have separate packages for AU and VST files, each can have its own .sh script with a path to the file.

      What the script does is it removes the specified file before the install progresses. Done!

      posted in General Questions
      T
      tomekslesicki

    Latest posts made by tomekslesicki

    • RE: Engine.getSampleRate() returns -1 in exported VST - workaround?

      @Sawatakashi https://docs.hise.audio/scripting/scripting-api/broadcaster/index.html#attachtoprocessingspecs

      posted in General Questions
      T
      tomekslesicki
    • RE: Engine.getSampleRate() returns -1 in exported VST - workaround?

      @Sawatakashi use a Broadcaster instead, it's far more realiable

      posted in General Questions
      T
      tomekslesicki
    • RE: Heads up: pirated copies of plugins on sale

      @David-Healey ah, so they run ads, too, how cool!

      posted in General Questions
      T
      tomekslesicki
    • Heads up: pirated copies of plugins on sale

      I know we all struggle with piracy, but these guys are actually selling pirated copies of plugins: https://pluginsboutique.com/ Thre are three other websites listed in the footer, they all sell the same stuff. Seems to come straight from the heart of Audioz. I don't know how many of you are affected.

      posted in General Questions
      T
      tomekslesicki
    • RE: Plugin parameter values as names

      @Christoph-Hart great, thank you!

      posted in Feature Requests
      T
      tomekslesicki
    • RE: Plugin parameter values as names

      @Christoph-Hart I guess it might, I was just ignoring them my whole life! If I was using numerical values up to this point, and will replace them with a combobox, will the numbers translate to name values? So value 0 will be name 0, value 1 name 1 and so on? This is a question about older session compatability

      posted in Feature Requests
      T
      tomekslesicki
    • Plugin parameter values as names

      Hey @Christoph-Hart , would it be possible to add support for named plugin parameter values? For example, if I have a stepped slider that selects something, like an EQ shape or some other parameter, display it in the DAW not as 0, 1, 2, 3, etc., but low shelf, peak, notch, high shelf, etc.? Thank you!

      posted in Feature Requests
      T
      tomekslesicki
    • RE: Logic pro PlugIns do not show up

      Check for duplicate .component files in the system and user libraries

      posted in General Questions
      T
      tomekslesicki
    • RE: Audio Spike when loading a Neural Network node.

      @Dan-Korneff @Christoph-Hart fantastic additions, thank you!

      posted in ScriptNode
      T
      tomekslesicki
    • RE: Thread 10 Crashed:: com.apple.audio.IOThread.client - on standalone app

      @ustk @Christoph-Hart can you confirm this is a vaiable solution?

      posted in Bug Reports
      T
      tomekslesicki