HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. tomekslesicki
    T
    • Profile
    • Following 0
    • Followers 3
    • Topics 99
    • Posts 543
    • Groups 1

    tomekslesicki

    @tomekslesicki

    Beta Testers

    97
    Reputation
    314
    Profile views
    543
    Posts
    3
    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: 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
    • RE: Multichannel hardcoded Poly FX build can't be opened in a DAW

      I found out that if I put NUM_MAX_CHANNELS also in the project settings, everything works just fine... :-)

      posted in Bug Reports
      T
      tomekslesicki

    Latest posts made by tomekslesicki

    • RE: Phaselocking 2025 and other sampler related discussions

      @Christoph-Hart that would be super cool and flexible I think!

      posted in General Questions
      T
      tomekslesicki
    • RE: Phaselocking 2025 and other sampler related discussions

      @Christoph-Hart will it also be possible to disable the crossfade after the transition and stay on the legato transition sample? I’m thinking about a scenario where the samples are edited so that the transition sample also contains the sustian portion to loop.

      posted in General Questions
      T
      tomekslesicki
    • RE: HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

      @d-healey maybe it works on some systems but not others, for whatever reason? Is there a way to get the final url of the call affected by the parameter property?

      posted in Bug Reports
      T
      tomekslesicki
    • RE: HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

      @d-healey none, but I suspect the problem is with the parameter part of the url called by HISE. The reason I suspect this is that the POST calls are made to a different server, and they work fine. The download callback works fine wherever I test it and - again, works for the vast majority of users - but I guess it's possible that the parameter part is not attached to the call properly, and the server rejects it because it doesn't pass the authorization.

      Link Preview Image
      HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

      Is there any way to print the final url with the parameter part? The docs https://docs.hise.dev/scripting/scripting-api/server/index.html#callwithget say tha...

      favicon

      Forum (forum.hise.audio)

      posted in Bug Reports
      T
      tomekslesicki
    • RE: HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

      @d-healey of course not ;-) But I also have one guy on Windows experiencing this now.

      posted in Bug Reports
      T
      tomekslesicki
    • RE: HEADS UP: Server.downloadFile() issue on macOS Sequoia - and a solution

      Is there any way to print the final url with the parameter part? The docs https://docs.hise.dev/scripting/scripting-api/server/index.html#callwithget say that "The parameters have to be a non-nested JSON object and will automatically change the URL to embed these parameters". What does the final url look like after the change?

      posted in Bug Reports
      T
      tomekslesicki
    • RE: Debug build - how to test with somebody else?

      @d-healey no, I have three different macs here, one is on intel, the other two are on m1. One is running the latest version of Sequoia, the other is on Monterey. I can't reproduce the issue on any of these, and it's literally 3 people out of almost 500 having the same problem. But the problem is there, apparently. It's either that macOS blocks traffic on GET / download callbacks, or that the parameter part is not passed correctly on their system for some reason. Here's my thread: https://forum.hise.audio/topic/12537/heads-up-server-downloadfile-issue-on-macos-sequoia-and-a-solution/22 but I thought learning how to send debug versions might be valuable to other people, if they'll end up searching for it at some point

      posted in General Questions
      T
      tomekslesicki
    • RE: File.move to user library on a Mac - help!

      @d-healey thank you!

      posted in Scripting
      T
      tomekslesicki
    • RE: Debug build - how to test with somebody else?

      @d-healey yeah, and tha't the problem for me. The hise part is good, it's just that the traffic appears to be blocked on some random macOS systems, and I'm trying to figure out what's up with that

      posted in General Questions
      T
      tomekslesicki
    • RE: Debug build - how to test with somebody else?

      @d-healey but this won't fire system errors, right, only the issues in hise script?

      posted in General Questions
      T
      tomekslesicki