HISE Logo Forum
    • Categories
    • Register
    • Login

    Installers

    Scheduled Pinned Locked Moved General Questions
    101 Posts 9 Posters 8.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LindonL
      Lindon @clumsybear
      last edited by

      @clumsybear said in Installers:

      Do you guys really bother using serials as copy protection? This isn’t effective at all as far as I know or is it?

      We've had this conversation both here and in other forums so many times I lost count. The real-world answer to this is "Yes, it is effective..."

      EVERYONE on the planet has an opinion about copy-protection and how its a waste of time - note thats OPINION, when you ask them about their experience its zero - they are not a developer and have never released a product.
      We should be very wary of these opinion givers, it's a classic case of logic defeating experience, so if you are basing your view on logic in this instance not experience then you are wrong (in my experience). Here's why:

      if you have no copy protection the script-kiddies will upload your product to a warez site in the first 2 weeks - killing your initial(major) sales - with no perceived consequence to them
      .
      If you do have (even the simplest easily breakable) copy-protection this wont happen - and it will take a serious cracker several months to get to you(if they even bother) - ensuring your sales in those months stay strong.

      @clumsybear - I'm not saying you are one of these opinion givers by the way...just suggesting you be careful being influenced by them.

      HISE Development for hire.
      www.channelrobot.com

      d.healeyD 1 Reply Last reply Reply Quote 1
      • d.healeyD
        d.healey @Lindon
        last edited by d.healey

        @Lindon I assume that a serial key in this instance acts as a watermark since there is nothing to prevent someone uploading the plugin along with their serial key?

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        LindonL 1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart
          last edited by

          I assume that a serial key in this instance acts as a watermark since there is nothing to prevent someone uploading the plugin along with their serial key?

          Yup, same with the "Simple copy protection system done right" approach I posted a few months back.

          Unless you're willing to hunt down people all across the world and go through a tedious lawsuit where you would have to really prove that it was this individual that was breaking your license agreement (good luck with that one), the only thing something like this does is to keep the "moderately criminal" user from uploading the product along with his serial.

          I would say the minimum level of copy protection (and what we are using for our products) needs to limit the amount of systems that can load the software with a given serial number by identifier the machine ID and registering it to a serial with a arbitrary number of registration slots (eg. 5). From then on cracking your software requires the skill to reverse-engineer a binary and remove the safe checks, and normally once you get the attention of people with that skill set you're either super unlucky or have made enough money that you can dry your tears with dollar bills.

          d.healeyD 1 Reply Last reply Reply Quote 1
          • d.healeyD
            d.healey @Christoph Hart
            last edited by

            @Christoph-Hart said in Installers:

            I would say the minimum level of copy protection (and what we are using for our products) needs to limit the amount of systems that can load the software with a given serial number by identifier the machine ID and registering it to a serial with a arbitrary number of registration slots (eg. 5).

            Would that require some kind of "call home" to a server?

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart
              last edited by

              Yes once for the plugin-activation (or you can use a tedious offline authorisation procedure which involves shuffling around XML files across different computers if you're paranoid about letting internet on your music computer).

              After the registration it won't call home (this would be really awful if you can't use the plugin without internet access).

              1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @d.healey
                last edited by

                @d-healey correct - thats all it is...

                HISE Development for hire.
                www.channelrobot.com

                1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey
                  last edited by d.healey

                  I have the ultimate copy restriction solution, GNU GPL ;) notice how no-one has "pirated" HISE. :p

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  LindonL 1 Reply Last reply Reply Quote 0
                  • LindonL
                    Lindon @d.healey
                    last edited by

                    @d-healey said in Installers:

                    I have the ultimate copy restriction solution, GNU GPL ;) notice how no-one has "pirated" HISE. :p

                    -- how would you know?

                    HISE Development for hire.
                    www.channelrobot.com

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @Lindon
                      last edited by

                      @Lindon Well you're allowed to copy and redistribute it so there is no copyright infringement (aka piracy). If someone took the HISE source code and used it in a proprietary app without permission that would be copyright infringement but would it be piracy?

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart
                        last edited by Christoph Hart

                        Actually I found a installer of HISE 1.5.0 on some warez site a few months back :)

                        EDIT: Found it: https://www.wattpad.com/755629828-complete-new-hart-instruments-sampler-engine-hise

                        Disclaimer: if you click on it you'll be downloading a spurious .dmg which most likely will contain some nasty malware.

                        d.healeyD 1 Reply Last reply Reply Quote 1
                        • d.healeyD
                          d.healey @Christoph Hart
                          last edited by

                          @Christoph-Hart Yeah but they're allowed to modify it and redistribute, even if the modification includes adding malware :P

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart
                            last edited by

                            But since they are not publishing the source code of the malware, it's a clear case of copy right infringement. GNU Lawyer team, please take over...

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @Christoph Hart
                              last edited by d.healey

                              @Christoph-Hart Oh good point, but they only have to provide the source on request, have you requested it? lol that would be funny.

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • A
                                arminh
                                last edited by

                                I need help with my installer.

                                I made feature list where we can select components to install but in next pages order is reversed.

                                Check list looks like

                                1. 32 Plugin
                                2. 64 Plugin
                                3. Samples

                                and if I select everything to install next pages are in this order

                                1. Samples
                                2. 64 Plugin
                                3. 32 Plugin

                                How can I keep the original order?

                                Here's my code

                                [Setup]
                                #define AppName "My Plugin"
                                #define DevDir "Developer"
                                AppName={#AppName}
                                AppPublisher={#DevDir}
                                AppVersion=1.0.0
                                AppId={{C60E272E-F521C-491F-97A0-D61644CAACE3}
                                
                                DefaultDirName={pf}\{#DevDir}\{#AppName}
                                DefaultGroupName={#AppName}
                                Compression=lzma2
                                SolidCompression=yes
                                OutputDir=.\installerbuild
                                ArchitecturesInstallIn64BitMode=x64
                                OutputBaseFilename={#AppName} Installer 1.0.1
                                ;LicenseFile=".\installerAssets\EULA.txt"
                                PrivilegesRequired=admin
                                ;WizardSmallImageFile=".\installerAssets\Logo55x58.bmp"
                                ;WizardImageFile=".\installerAssets\Logo164x314.bmp"
                                DisableWelcomePage=no
                                DisableDirPage=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} 32-bit VSTi Plugin"; Types: full custom;
                                Name: "vst2_64"; Description: "{#AppName} 64-bit VSTi Plugin"; Types: full custom; Check: Is64BitInstallMode; 
                                Name: "samples"; Description: "{#AppName} Sample Set"; Types: full custom;
                                
                                [Files]
                                ; VST
                                Source: "Binaries\Compiled\VST\{#AppName} x86.txt"; DestDir: "{code:Get32Dir|0}\{#DevDir}"; Flags: ignoreversion; Components: vst2_32; Check: 
                                Source: "Binaries\Compiled\VST\{#AppName} x64.txt"; DestDir: "{code:Get64Dir|0}\{#DevDir}"; Flags: ignoreversion; Components: vst2_64; Check: Is64BitInstallMode
                                
                                ; SAMPLE FILE
                                Source: "{#AppName}_1_0_0_Samples.hr1"; DestDir: "{code:GetSamplesDir|0}"; Flags: ignoreversion; Components: samples;
                                
                                
                                 [Icons]
                                Name: "{group}\Uninstall {#AppName}"; Filename: "{app}\unins000.exe"    
                                
                                [Code]
                                var 
                                    vst2_32: TInputDirWizardPage;function SkipEvent64 (Sender: TWizardPage): Boolean;
                                begin
                                    Result := not IsComponentSelected('vst2_64');
                                end;
                                
                                var 
                                    vst2_64: TInputDirWizardPage;function SkipEvent32 (Sender: TWizardPage): Boolean;
                                begin
                                    Result := not IsComponentSelected('vst2_32');
                                end; 
                                
                                var 
                                    samples: TInputDirWizardPage;function SkipEventSamples (Sender: TWizardPage): Boolean;
                                begin
                                    Result := not IsComponentSelected('samples');
                                end; 
                                
                                function Get32Dir(Param: String): String;
                                begin
                                  Result := vst2_32.Values[StrToInt(Param)];
                                end;
                                
                                function Get64Dir(Param: String): String;
                                begin
                                  Result := vst2_64.Values[StrToInt(Param)];
                                end;
                                
                                function GetSamplesDir(Param: String): String;
                                begin
                                  Result := samples.Values[StrToInt(Param)];
                                end;
                                
                                procedure InitializeWizard;
                                begin
                                    vst2_32 := CreateInputDirPage(wpSelectComponents, 'Select a location', 
                                    'Where should the plug-in be installed?', 'Choose the place where you will install {#AppName} 32-bit. Its best to choose the folder where your other plugins are located. Click next to continue', False, 'vst2_32');
                                    vst2_32.Add('Choose a place for {#AppName} 32-bit');
                                    vst2_32.Values[0] := GetPreviousData('Directory1', ExpandConstant('{pf}\Steinberg\VSTPlugins\{#DevDir}\{#AppName} 32-bit'));
                                    vst2_32.OnShouldSkipPage := @SkipEvent32;
                                
                                    vst2_64 := CreateInputDirPage(wpSelectComponents, 'Select a location', 
                                    'Where should the plug-in be installed?', 'Choose the place where you will install {#AppName} 64-bit. Its best to choose the folder where your other plugins are located. Click next to continue', False, 'vst2_64');
                                    vst2_64.Add('Choose a place for {#AppName} 64-bit');
                                    vst2_64.Values[0] := GetPreviousData('Directory2', ExpandConstant('{pf}\Steinberg\VSTPlugins\{#DevDir}\{#AppName} 64-bit'));
                                    vst2_64.OnShouldSkipPage := @SkipEvent64;
                                
                                    samples := CreateInputDirPage(wpSelectComponents, 'Select a location', 
                                    'Where should the samples be installed?', 'Choose the place where you will install {#AppName} samples. Click next to continue', False, 'samples');
                                    samples.Add('Choose a place for {#AppName} Samples');
                                    samples.Values[0] := GetPreviousData('Directory3', ExpandConstant('{sd}\{#AppName} Samples'));
                                    samples.OnShouldSkipPage := @SkipEventSamples;
                                end;
                                
                                procedure RegisterPreviousData(PreviousDataKey: Integer);
                                begin
                                  SetPreviousData(PreviousDataKey, 'Directory1', vst2_32.Values[0]);
                                  SetPreviousData(PreviousDataKey, 'Directory2', vst2_64.Values[0]);
                                  SetPreviousData(PreviousDataKey, 'Directory3', samples.Values[0]);
                                end;
                                
                                1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey
                                  last edited by

                                  Samples won't be part of your installer unless your instrument is tiny.

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

                                  1 Reply Last reply Reply Quote 0
                                  • Dan KorneffD
                                    Dan Korneff
                                    last edited by

                                    @orange said in Installers:

                                    By the way if anyone know how to add aax icons to the installation files or how to create folders with aax icons, it would be good to share from here.

                                    Circling back to this one. To get the AAX icon to appear on your plugin in Windows you have to run the following command:

                                    attrib +s "MyPluginName.aaxplugin"
                                    

                                    @Christoph-Hart is it possible to have the Export function automatically set this file attribute?

                                    Dan Korneff - Producer / Mixer / Audio Nerd

                                    d.healeyD 1 Reply Last reply Reply Quote 1
                                    • d.healeyD
                                      d.healey @Dan Korneff
                                      last edited by

                                      @dustbro said in Installers:

                                      To get the AAX icon to appear on your plugin in Windows you have to run the following command:

                                      Where do you run that?

                                      Libre Wave - Freedom respecting instruments and effects
                                      My Patreon - HISE tutorials
                                      YouTube Channel - Public HISE tutorials

                                      Dan KorneffD 1 Reply Last reply Reply Quote 0
                                      • Dan KorneffD
                                        Dan Korneff @d.healey
                                        last edited by Dan Korneff

                                        @d-healey Command Prompt

                                        https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib

                                        Dan Korneff - Producer / Mixer / Audio Nerd

                                        d.healeyD 1 Reply Last reply Reply Quote 0
                                        • d.healeyD
                                          d.healey @Dan Korneff
                                          last edited by

                                          @dustbro HISE doesn't actually export the plugin, it generates a JUCE project which generates a Visual Studio project, then Visual Studio does the export. So I don't see how HISE could do this task, but it might be possible to have it written to a script that runs after the compilation is complete.

                                          Libre Wave - Freedom respecting instruments and effects
                                          My Patreon - HISE tutorials
                                          YouTube Channel - Public HISE tutorials

                                          Dan KorneffD 1 Reply Last reply Reply Quote 1
                                          • Dan KorneffD
                                            Dan Korneff @d.healey
                                            last edited by Dan Korneff

                                            @d-healey Back to square one... Inno seems to strip this property when the file is installed, so the icon disappears again :/
                                            EDIT:
                                            The installer actually appears to ignore hidden files? Plugin.ico and Desktop.ini are missing after inno install.

                                            Also just noticed there's a script in the AAX sdk that changes all attributes for you.

                                            AAX\Utilities\CreatePackage.bat
                                            
                                            IF EXIST %OutDir% GOTO OUTDIR_EXISTS
                                            mkdir %OutDir%
                                            :OUTDIR_EXISTS
                                            
                                            IF EXIST %OutDir%\..\Win32 GOTO Win32_EXISTS
                                            mkdir %OutDir%\..\Win32
                                            :Win32_EXISTS
                                            
                                            IF EXIST %OutDir%\..\x64 GOTO X64_EXISTS
                                            mkdir %OutDir%\..\x64
                                            :X64_EXISTS
                                            
                                            IF EXIST %OutDir%\..\Resources GOTO RESOURCES_EXISTS
                                            mkdir %OutDir%\..\Resources
                                            :RESOURCES_EXISTS
                                            
                                            echo Set Folder Icon
                                            
                                            IF EXIST %OutDir%\..\..\PlugIn.ico GOTO ICON_EXISTS
                                            copy /Y %IconSource% %OutDir%\..\..\PlugIn.ico > NUL
                                            :ICON_EXISTS
                                            
                                            attrib -r %OutDir%\..\..
                                            attrib -h -r -s %OutDir%\..\..\desktop.ini
                                            echo [.ShellClassInfo] > %OutDir%\..\..\desktop.ini 
                                            echo IconResource=PlugIn.ico,0 >> %OutDir%\..\..\desktop.ini 
                                            echo ;For compatibility with Windows XP >> %OutDir%\..\..\desktop.ini 
                                            echo IconFile=PlugIn.ico >> %OutDir%\..\..\desktop.ini 
                                            echo IconIndex=0 >> %OutDir%\..\..\desktop.ini 
                                            attrib +h +r +s %OutDir%\..\..\PlugIn.ico
                                            attrib +h +r +s %OutDir%\..\..\desktop.ini
                                            attrib %OutDir%\..\..
                                            
                                            

                                            Dan Korneff - Producer / Mixer / Audio Nerd

                                            Dan KorneffD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            47

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.3k

                                            Posts