Forum
    • Categories
    • Register
    • Login

    HISE made Plugin Installer

    Scheduled Pinned Locked Moved General Questions
    6 Posts 4 Posters 49 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.
    • resonantR
      resonant
      last edited by resonant

      Has anyone created an HISE-made installer that installs VST3, AU, and AAX files into system folders?

      How do you handle the permissions when doing this on macOS?

      David HealeyD dannytaurusD 2 Replies Last reply Reply Quote 0
      • David HealeyD
        David Healey @resonant
        last edited by

        @resonant Rhapsody used to include an installer for plugins, but you had to install Rhapsody first using a conventional installer. Not sure how you would avoid it.

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - HISE tutorials
        My Patreon - More HISE tutorials

        1 Reply Last reply Reply Quote 1
        • dannytaurusD
          dannytaurus @resonant
          last edited by dannytaurus

          @resonant I wouldn't use HISE to build a simple installer for VST3/AU/AXX.

          Package Builder by Araelium and Packages by WhiteBox can both do this very easily with native macOS windows and controls.

          HISE dev latest / super.engineering + Claude Fable / Figma + Affinity
          Meat Beats: https://meatbeats.com
          Klippr Video: https://klippr.video

          1 Reply Last reply Reply Quote 2
          • resonantR
            resonant
            last edited by

            I think I’ve seen a few users (maybe @Lindon @ustk @orange) try this before; I’d really like to know what the risks are or what needs to be done.

            dannytaurusD LindonL 2 Replies Last reply Reply Quote 1
            • dannytaurusD
              dannytaurus @resonant
              last edited by

              @resonant I'll also add, if you want to build a plugin manager like Arturia Software Centre or UVI Portal, that would be an interesting HISE project.

              But for a straight up single-product VST3/AU/AAX installer, I'd go with Package Builder or Packages.

              HISE dev latest / super.engineering + Claude Fable / Figma + Affinity
              Meat Beats: https://meatbeats.com
              Klippr Video: https://klippr.video

              1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @resonant
                last edited by

                @resonant said in HISE made Plugin Installer:

                I think I’ve seen a few users (maybe @Lindon @ustk @orange) try this before; I’d really like to know what the risks are or what needs to be done.

                Okay heres what I've done over the last few years, first the problem:

                HISE products(especially those using samples) require a number of "additional" steps to any set up e.g. the Link file, putting the samples in a user-defined location, putting presets in the AppData folder as well as images, IR's, wavetable; files and any meta data, json or js files you want to ship with your product (the list goes on, and on, and on and - well you get the picture).

                PackageBuilder, Packages etc and inno etc on windows dont really understand these locations, or any interaction required with the user whilst the install is underway - its possible but its fiddly and in my experience very time consuming.

                So first I built a separate stand alone installer in HISE, it required the user to download one(or more) zip file(s) and point the installer at these...not massively friendly end-user tool, but it dealt with all the problems above....

                Next I took it a step further and got it to use a defined manifest file(a json file) that allowed it to download its own zipped up content files (it asked the user where they wanted to put these temp files and cleaned up afterwards). So more friendly, and also on its way to being a "generic" Channel Robot Installer system that I could use for all my plugins.

                Biggest outstanding problems: 3rd-party distributors (like Tracktion) and their insistence on using their own in-house installer systems and I'd never been able to get the installer to put the plugin in anything but the "user" plugin folder structure on MacOS.

                So in the end it became clear that this read-a-manifest-down-load-some-files-and-install-them-where you-are-told componentry would fit inside the plugin itself pretty easily.

                So my current system? Every plugin is a simple VST3, AU, AAX plugin that any 3rd-party installer can put where those plugins belong, so now you can use packages or whatever to put the plugin in the "system" plugins folder, or you can hand your plugins over to some distributor based system (e.g.Pulse) and they can install it their way....

                When the plugin is fired up for the first time it recognises its not got all it needs and starts the download and write to disk process for all it's "content":

                • it first asks where the user wants these temp file to be located
                • it then asks the user for the Sample folder they want to use
                • it then starts downloading, using its manifest to know what to download, and where to unzip it to
                • once everything is downloaded it starts its own set up process
                • puts samples in the user selected samples folder and creates/updates the link file
                • puts images in the AppDat/images folder
                • presets in the AppData/User Presets folder
                • meta data in the AppData Folder
                • tells the user its done and offers to clean up after itself, telling the user to just restart the plugin to get it all to work.

                You could easily define more locations for "stuff" as you need it but right now the plugin set up componentry knows about these locations:

                • sample folder
                • images folder
                • expansions folder
                • Audio folder
                • AppData folder

                Here's a list of the constants it currently users for locations:

                const var USERSAMPLE_LOCATION = 0;   // a user defined sample location - i.e. the contents of the LINK file location(folder)
                const var EXISTING_LOCATION = 1; // whatever is in linkWindows/linkMacos (read, or write this if missing/empty)
                const var APPDATA_LOCATION = 2; // the location of {APPDATA}
                const var AUDIOFILES_LOCATION = 3; // Appdata/AudioFiles  -- for the Loops and HWT files
                const var PRESETS_LOCATION = 4;  //  AppData/User Presets
                const var EXPANSIONS_LOCATION = 5;  // APPDATA/EXPANSIONS/<the expansion name>  where the expansion json goes...dont forget to add the exp name ot teh install file
                const var EXPANSIONS_MAPLOCATION = 6; // APPDATA/EXPANSIONS/<the expansion name>/SampleMaps
                const var USERDOWNLOADS_LOCATION = 7;
                const var IMAGES_LOCATION = 8;
                const var SKINS_LOCATION = 9;
                

                It turned into a pretty simple effort to extend this to allow download and install of expansions, and theses sell pretty well, here's an example page for Atmosia :

                https://www.tracktion.com/products/atmosia

                scroll to the bottom and you will see there are 5 expansion packs users can buy.

                Generally its a pretty fail safe system and I get few support calls for it, maybe 1 in 100 (but that's a guess)

                If the HISE shop ever gets up and running - I intended to offer it as a set of script files, widgets and guideline documents so you can add it to your own plugins.

                HISE Development for hire.
                www.channelrobot.com

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

                14

                Online

                2.5k

                Users

                13.9k

                Topics

                121.4k

                Posts