How to avoid users having to unpack an hr1 file on first run of an instrument
-
@pcs800 are you copying the samples with your installer? You will then create the link file jn the app data folder that points to the location in the installer too.
There is another preprocessor which deactivates the entire sample installation dialogue but I‘ve forgot how it‘s called. If you use this then you can implement your own sample location logic.
-
@Christoph-Hart Installer? I do not see where HISE creates installers. Should I use inno setup or something?
Where should the samples be placed? In the vst folder where the .vst3 file get placed?
Can you explain this?
You will then create the link file jn the app data folder that points to the location in the installer too. -
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Should I use inno setup or something
Yes, on Windows. On MacOS use Packages or DMG Canvas.
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Where should the samples be placed?
You should ask the user where they want to put them on their system.
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
In the vst folder where the .vst3 file get placed?
Probably not.
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Can you explain this?
You will then create the link file jn the app data folder that points to the location in the installer too.In the plugin's app data folder there is a folder called Samples. In there you need to place a file called LinkWindows (or LinkOSX on Mac). And in that file you put the path to actual location of the samples. Then when your plugin runs it will find the samples at the correct location. - When you used the hr1 installer that's what it did.
-
@d-healey plugin's app data folder? Where is that?
This plugin project resides here Documents\HISE Projects\project name (this is Windows). -
@Christoph-Hart
I was guessing so I created an inno setup script which puts everything from the project \Compiled folder, into C:\Program Files\Common Files\VST3\product name.
It places the samples in {userdocs}\Company name\Product name.
It also put a file with no file extension, called "LinkWindows", into C:\Program Files\Common Files\VST3\product name
Obviously this is wrong, because the plugin still asks for the samples when I run it.Can you clarify?
-
In HISE, use File -> show Project app data folder in Explorer. This should open the exact directory where you need to put the LinkWindows file.
-
@Christoph-Hart Ok, i set the right path in the LinkWindows file located at File -> show Project app data folder in Explorer.
re-exported the plugin, bundled it into an installer and tried it on another pc. Same result, it is asking for the path to the audio.
Can I not simply embedd the samples into the plugin? -
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Can I not simply embedd the samples into the plugin?
Nope, plugins have to be shipped separately. If you don't want to roll your own installer the simplest solution is to use the hr file and HISE's built in installer as you have been.
-
@d-healey That is not what I have been doing. I have been using innosetup to create the installer. Including the plugin files and samples.
I do not see a built in installer maker in Hise. -
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
That is not what I have been doing.
I'm referring to the thing in your first post. When you launch the plugin it asks you to locate the hr file, it then extracts it and create the link file automatically.
-
@d-healey Ok, but i do not want customers to have to do that. How can i have them install the plugin, and it just works without further config?
-
@pcs800 You have to write a custom script that innosetup can launch after the plugin installation to create the link file. And you'll need a similar script on Mac.
-
@d-healey said in How to avoid users having to unpack an hr1 file on first run of an instrument:
@pcs800 You have to write a custom script that innosetup can launch after the plugin installation to create the link file. And you'll need a similar script on Mac.
or you can write some sort of downloader, either independent stand alone or inside your plugin - but inno, standalone or in-plug you are going to have to have a location(path) that you can use - you cannot assume any given folder/directory will be available on your end users machine - which is why everyone asks the user where they want the samples saving....
-
@Lindon I am obviously new at this, and coding is not my thing. which is why I chose Hise, most things can be done without coding. It floors me that something separate has to be written or downloaded just to include the samples.
Maybe if I understood the process better, I wouldn't be so intimidated.
Let's assume the following.- I will not be making mac versions, only windows
- I will only be creating vst3 plugins, not stand alone or vst2
- I would like to place the sampels inside the plugin vst3 folder, like this C:\Program Files\Common Files|VST3\My plugin\Samples
Can someone explain how to do that? In noob terms please?
-
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Can someone explain how to do that? In noob terms please?
You include the samples with inno setup and it puts them in the location you choose. You need to write a script for innosetup to run after installation to create the link file - or you could write a script in your plugin to make it create the link file on first load.
-
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
@Lindon I am obviously new at this, and coding is not my thing. which is why I chose Hise, most things can be done without coding. It floors me that something separate has to be written or downloaded just to include the samples.
Maybe if I understood the process better, I wouldn't be so intimidated.
Let's assume the following.- I will not be making mac versions, only windows
- I will only be creating vst3 plugins, not stand alone or vst2
- I would like to place the sampels inside the plugin vst3 folder, like this C:\Program Files\Common Files|VST3\My plugin\Samples
Can someone explain how to do that? In noob terms please?
Well - how many sample based products have you installed? Every Kontakt instrumetn has to install the samples somewhere, as does every other sampler-based product, so in this regard HISE is no different. But lets look at your assumptions:
- I will not be making mac versions, only windows
Why would you? There is nothing intrinsically harder or easier in adding in a 2nd platform - which is one of the great benefits of HISE
- I will only be creating vst3 plugins, not stand alone or vst2
Correct - I assume you didn't get a VST2 license when they were available - a few years ago now - and thus don't have a license and thus cannot release VST2 format...mostly we've all given up on VST2 anyway...
- I would like to place the sampels inside the plugin vst3 folder, like this C:\Program Files\Common Files|VST3\My plugin\Samples
Very, very bad idea. First you are assuming there's is a C: drive, and then you are assuming that Program Files is mapped there - if you know enough about windows, or have enough experience with audio end users both of these assumptions are untrue for between 5-10% of you customer base (maybe a little less). Hint: system drive location is set-able in the BIOS. So what are you going to do when there is no C drive or no path called C:\Program Files\Common Files|VST3\My plugin\Samples ??
But worse than this is not recognising in 2024 there will be nearly zero room on the end users system drive(even if it is C:\Program Files) Users these days have small very very fast system drives that can just about hold the OS and core audio programs - there will be very very little room left and your customers will not thank you for chewing a very large amount of it with your Samples. Obviously you can do whatever you like so go ahead, but - last piece of advice:
Ask. The. User. Where. They. Want. The. Samples. And. Put. Them. There. NOWHERE ELSE.
-
@d-healey said in How to avoid users having to unpack an hr1 file on first run of an instrument:
You include the samples with inno setup and it puts them in the location you choose. You need to write a script for innosetup to run after installation to create the link file - or you could write a script in your plugin to make it create the link file on first load.
If i write the script in innosetup, how do I know where it should place the linkwindows file?
Or if I put the script in the plugin itself to create the link file on first run, where dos the file get placed?
Should I ask chatgpt to write it for me, or is someone here going to get more specific? -
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
how do I know where it should place the linkwindows file?
In the plugin's app data folder, that's the same on all systems. You'll need to create the sub-folder tree if it doesn't already exist.
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Should I ask chatgpt to write it for me,
You can try, but I wouldn't run the code unless you know what it does. Scripts that mess with files can cause problems if not written correctly.
-
@Lindon Actually I am extremelmly familiar wth Windows IS,s. I am a retired IT pro and dealt with windows xp on up thorugh win10, and every server version in between. VN's and Linux as well.
I have yet to see an OS hard drive so small, that nothing can be installed on it. In fact, isn't the vst3 standard that all vst3 plugins are placed at OS drive\Program Files\Common Files\VST3?As far as mac, maybe I will create those later, but for now,since I am new, I would like to create windows vst3's only.
I do not know how to create a script that allows the user to set the samples location. SO assuming I put them in say [userdocs}\company name\product name\samples
Couldn't I just include this linkwindows file with that path already defined? -
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
I do not know how to create a script that allows the user to set the samples location.
This is what the hr installer does already.
@pcs800 said in How to avoid users having to unpack an hr1 file on first run of an instrument:
Couldn't I just include this linkwindows file with that path already defined?
I didn't even think of that but yeah, actually I think that would work since it's the same location on both systems. The only issue I see is how do you get it in the app data folder on the user's system because they will have a different username to you. It's possible Innosetup provides a wildcard for the username though, I can't remember, so check the documentation.