Write or unzip a file into the VST3 or AU folder (MAC)
-
@d-healey
Ok, I thought you were using your own installer? Or is it a combination of your own installer and packages?And if I may ask - what are you using under Windows?
-
@Oli-Ullmann For installing plugins on Windows I use InnoSetup, on MacOS I use Packages, and on Linux I'm using MakeSelf.
For installing instruments (Rhapsody expansions) I use my own installer within Rhapsody, but these go in the app data folder as they aren't plugins themselves.
-
@d-healey
I understand, thanks for the explanation! :-) -
@Oli-Ullmann Although it is not a very effective method, there is an API through which you can open the application via HISE.
So you can run installers after downloading, or maybe even zip files.
startAsProcess
-
@orange
Yes, that was exactly my solution!I create the plug-in installer with Packages/InnoSetup and download it into the appData folder of my online content installer (which I am currently programming). This then starts the external Packages Installer after the complete sound content has been downloaded and installed.
As you wrote, it's not the most effective solution, but it's the only one I can think of right now.
I supply wavetables with my plug-in, which I download using my own online installer and unpack into the appData/Audiofiles folder of my plug-in. I have no idea how I could do this with packages. I'm sure it is possible, but I don't know anything about packages or InnoSeput.
-
For Inno, it's easy. You can directly copy the samples to the user AppData folder with this.
Source: TheProjectPath\Samples\*.*; DestDir: "{userappdata}\ YourCompany\YourPlugin\"; Flags: ignoreversion
For Packages, you can't directly copy paste the files to the user AppData folder because of the permissions. For this, you need to create a bash script. This script first copies the sample files to a temporary folder, then move the content to the user AppData folder after the installation completed. The below is the template that I use. You need to create this bash script and put it into the Post Installation Script section in the Packages.
#!/bin/sh # Created by Beyhan KILIC on 2022/12/03. sudo -u $USER mkdir -p $HOME/Library/Application\ Support/YourCompany/YourPlugin/ /usr/bin/rsync -avurpE --remove-source-files /Library/Application\ Support/YourCompany/YourPlugin\ Temp\ Files/YourPlugin/ $HOME/Library/Application\ Support/YourCompany/YourPlugin/ sudo find $HOME/Library/Application\ Support/YourCompany/YourPlugin\ Temp\ Files/ -type d -user root -exec sudo chown -R $USER: {} + rm -rf /Library/Application\ Support/YourCompany/YourPlugin\ Temp\ Files exit 0
NOTE: You might want to copy the
LinkOSX
andLinkWindows
files as well. -
@orange said in Write or unzip a file into the VST3 or AU folder (MAC):
For Packages, you can't directly copy paste the files to the user AppData folder because of the permissions. For this, you need to create a bash script. This script first copies the sample files to a temporary folder, then move the content to the user AppData folder after the installation completed. The below is the template that I use. You need to create this bash script and put it into the Post Installation Script section in the Packages.
You can install into both the user and system folders with packages. There are instructions on the packages website and I made a video about it.
-
@d-healey said in Write or unzip a file into the VST3 or AU folder (MAC):
You can install into both the user and system folders with packages. There are instructions on the packages website and I made a video about it.
But as far as I can see, the method in this video does not make the process easier. You are creating 2 packages files and also still use a bash script like I mentioned above.
Why use 2 packages files and 1 bash script when we can use just 1 packages file and 1 bash script? :)
Frankly I wouldn't prefer that.
-
@orange The bash script is simpler as it just runs the second package, it doesn't need to copy files to a temp folder and move them to another location.
I find using two packages is a nice way to keep things organised and I generate them automatically from my build script so it's not extra work once it's setup.
-
@orange @d-healey
But isn't the Packeges/Inno Installer then huge? My sample and wavatable content together is 14GB in size. Or can I deliver the content as Zips and Packages/Inno can then access these Zip files?The samples can be copied anywhere. However, the wavetables must be copied to the appData/Audiofiles folder. I don't want the user to have to copy the files there manually. This can be problematic, especially for beginners.
I'll have to look for some packages/inno tutorials! :-)
Thank you very much
Oli -
@Oli-Ullmann said in Write or unzip a file into the VST3 or AU folder (MAC):
But isn't the Packeges/Inno Installer then huge?
Don't include your samples in the installer, they can be delivered separately. I think @orange was referring to the files you need to put in AppData.
-
@d-healey
Ok, I'll give it a try.Thank you guys!
-
@Oli-Ullmann I couldn't see a file size limitation in Packages. Are you getting an error while building a 14GB size installer with it?
For Inno, I believe there is no limitation too. Inno divides it into 2 GB packages, but ultimately an installer can be created.
-
@orange
I haven't tried it yet. I'm more interested in the fact that the user doesn't have to download a 14GB file...