@oskarsh Another friendly bump.
I want to use it to move panels down/up.
@oskarsh Another friendly bump.
I want to use it to move panels down/up.
Hello!
I thought that maybe for some this Inno Setup script could be useful. It installs the plugin + samples automatically on the user's computer.
It does the following:
(In this case I also added the file "AudioResources.dat" so that it is automatically installed in the userappdata folder)
In this way, the user simply opens the plugin and already has everything configured.
Paying attention to the * symbol at the end of the source file location because it includes the folders inside the selected folder. For example, inside the "D:\Downtown Grand Piano\Samples Folder*" location I have the folder called Downtown Grand Piano Samples. Inno Setup will include the folder inside “Samples Folder”, which is "Downtown Grand Piano Samples" (You can check the Inno Setup documentation if you need to understand this better.)
Then the linkWindows file is autogenerated with the location chosen by the user + \Downtown Grand Piano Samples at the end.
(I received help from GPT to automatically generate the linkWindows file, although it took me some time to make it work properly)
[Files]
Source: "D:\Downtown Grand Piano\AudioResources.dat"; DestDir: "{userappdata}\ZAK Sound\Downtown Grand Piano";
Source: "D:\Downtown Grand Piano\VST3 File\*"; DestDir: "{code:GetVst3Directory}"; Flags: recursesubdirs
Source: "D:\Downtown Grand Piano\Samples Folder\*"; DestDir: "{code:GetSampleDirectory}"; Flags: recursesubdirs createallsubdirs
[Code]
var
Vst3DirectoryPage: TInputDirWizardPage;
SampleDirectoryPage: TInputDirWizardPage;
procedure InitializeWizard;
begin
SampleDirectoryPage := CreateInputDirPage(wpSelectDir, 'Select Samples Directory', 'Where would you like to install the samples?', 'Select the location where you want to install the samples (2.58GB). You can use an external drive if you have one.', False, '');
SampleDirectoryPage.Add('');
SampleDirectoryPage.Values[0] := ExpandConstant('{commoncf}\VST3\Downtown Grand Piano');
Vst3DirectoryPage := CreateInputDirPage(wpSelectDir, 'Select VST3 Directory', 'Where would you like to install the VST3 file?', 'Select the default location of your VST3 plugins. In most cases, there is no need to make any changes.', False, 'Size: 29MB');
Vst3DirectoryPage.Add('');
Vst3DirectoryPage.Values[0] := ExpandConstant('{commoncf}\VST3');
end;
function GetVst3Directory(Param: String): String;
begin
Result := Vst3DirectoryPage.Values[0];
end;
function GetSampleDirectory(Param: String): String;
begin
Result := SampleDirectoryPage.Values[0];
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
LinkWindowsFilePath: string;
LinkWindowsFileContent: string;
SampleDirectory: string;
BaseDirectory: string;
begin
if CurStep = ssInstall then
begin
BaseDirectory := ExpandConstant('{userappdata}\ZAK Sound\Downtown Grand Piano');
ForceDirectories(BaseDirectory);
LinkWindowsFilePath := BaseDirectory + '\LinkWindows';
if FileExists(LinkWindowsFilePath) then
DeleteFile(LinkWindowsFilePath);
SampleDirectory := GetSampleDirectory('');
LinkWindowsFileContent := SampleDirectory + '\Downtown Grand Piano Samples';
SaveStringToFile(LinkWindowsFilePath, LinkWindowsFileContent, False);
@d-healey oh, I found the solution on this post: https://forum.hise.audio/topic/4355/changing-impulses-in-scriptnode/15
@d-healey said in Compiling macOS Components and VST3 Doesn't Put Them in the Project Folder:
In a recent commit of HISE Christoph removed the copy step so it should no longer be moving the plugin files automatically (although this might only apply on the latest MacOS version I'm not sure).
I can confirm. I'm using Sonoma 14.3.1, and the compiled plugins are now located inside the project folder. That was a good surprise :)
@ThinkTank You have to add this:
const var ParametriqEQ1 = Synth.getEffect("Parametriq EQ1");
Engine.addModuleStateToUserPreset("Parametriq EQ1");
(Replace ParametriqEQ1 with your real EQ name)
@bendurso I just realized that setting the Source Length to the same sample length (2048, I was using Automatic mode before) and enabling FLAC compression does the trick to obtain the same file as the example.
Beautiful page. I think the commercial license prices and FAQ are very useful for new potential users who want to use Hise :)
@d-healey Hmm, it didn't work. However, I just realized that I only needed to trigger the ComboIndex, and it worked (as you mentioned initially). Thank you :)
inline function oncmbPolyShape2Control(component, value)
{
Polyshape2.setAttribute(Polyshape2.Mode, ComboIndex[value - 1]);
}
@DabDab This is what David said turned into a snippet :)
HiseSnippet 1053.3oc0V8taaaCDmx1pn16OHEqO.B4SNXdA1MooqHXXtwIdvXwIFSdcCHnnfl5rMQjHUknRiwPeF1aydL1yxdC1NJIaQ03kjZj8g4OXHd+g2Od79cGGEIYPbrLhXUe7hPfX841tKDp48lS4BxfiIVeo8PZrBhbxDczhPZbL3Qrrp9CZAV0qQR+8We+QTepfAEhHjWK4L3Td.WUHcT2ej662m5Ai4AFVue2ALonmzWlf3opcaRHkcIcFbFUaVEah0iNwiqjQtJpBhIV0NR5svct78hL6eMOlOwGzK5PbwMJSbeoumFw5uI8ly88Fs7bGSvcYTQVnZVV3o1C4d7UxKxFakpvovCy7gUkxvqZI30wDdsMf2ZfjkAjpkAomX6xh3gpBMZ77Y1CD3kyTJl1MgRlsjJurhcOIZgPsa.8RneDtXkGMOnc6VN3e6bXiFXpOV4bEEunkASjGIutiy24rz4YfBEGJE3hlauxhsWimCDdv0nqWzokyyZ4rWKm8a47h2bngcm1+7gRuDeJlrzQIsjSGiURatMZiSgQoAhK74BvYZhfo3RgitXIGHZbFI8axVBxVXf7SfcZ7aMpWJb6FCpWoTQ7IIJnYYU+B8JnuLJPmwaYbZtHcub9FmNuAwwGPnbm4EcXxAUOpu+DrRt4Mw6NGZbXNSpfyEMSgbiOzv4iUMc5Z0kuU9PzZUq4XQ2liMEIASfHyDl1Prvqb07i92qlMIarrLiggRw.AWcdHjutfN1YM09j7TqlEjiPzTUJGXqbNvxzHg6oo.qxpjzifYKIxOO3Xphtbyv8EiUHDo35ij0wvUX+oLBVc6ig3KUxvTayuSwi88LzWSrrs9SLnKze7G3GbEDfAww1EqZaLNhSEy7gFtz22v8cIzH7SEDFSBno9Zm1a7F7driyxBTy1P5du4JvayRbeM+VDyUKLSDebuoZ2uay6n0oYepsxvqsMxoxAYYN7cCx9Qv6R.AyP3i6pGTLnXNS2euqllNMmlZ59ovLLPlRFC38H1cgYNSxMPJUy4hYkG+7ztmJkgmHnXZvybSFMmFqYeHitz1fa6XY1vwd9R1klJGLSHifLFso7dIwJYvxCP5PMcQPZMp0E1Gr+t3uoes9+W1C+auyeXVS9DlM041mMU4dVi9UoW+qtm0EBOnkosWaY5Zao7Ig3UEg+O.wOwdDWwlu9FAUVCdIj+ywa9Sn9B6SlNEXpBvVyt+udquW5gAJ+jLQgj6gTbFutw5YIAt3KJY.hDg.7i0Maqn4hYqaqWmRnAgW5h+F+kqridsUtxNKUhsrYQx2xxFOoIEONUBhIQ5aUqiOZFW6biIRDR.99w2xXk2pa33y1TG2aScb+M0wmuoNdvl53K1TG+161Q8y6eUB1iNiNQHCGcRV2YqUiFrpR9G.Ii9IR
I just saw you said a knob, I used a combo box, but it's the same concept for a knob.
@d-healey said in Call an inline function from another inline function?:
you should use a value broadcaster in the second namespace - or in both if you're using my fork.
I watched your video about the broadcaster a few days ago, but I hadn't tried it out until now. Hehe. I just tried it, and it worked :)
@d-healey said in Call an inline function from another inline function?:
I think the reason for the crash is because you don't have a reference to the knob in the first namespace.
Edit: I just realized that the crash was due to something else in the main knob (it was the knob I had posted a few days ago about unload and load the convolution reverb to update the setRange). https://forum.hise.audio/topic/11188/audiofile-setrange-won-t-increment/6?_=1734032060483
@d-healey In the first namespace, I assign a function to the knob.
In the second namespace, I use the knob's value for a different purpose.
I have a callback for a knob used within a namespace (First).
I want to pass the value of this knob to another inline function located in a different namespace (Second).
However, HISE crashes when I try to do this. Could the issue be that I am calling an inline function from within another inline function? If I change the second inline function to a regular function, everything works fine.
Example:
namespace First
{
inline function onKnob1Control(component, value)
{
Second.UpdateValue();
};
Content.getComponent("Knob1").setControlCallback(onKnob1Control);
}
namespace Second
{
const var Knob1 = Content.getComponent("Knob1");
inline function UpdateValue()
{
Knob1.getValue();
// Do something
};
}
@Simon Mm the same thing happens to me on Linux, and I even added the predefinition USE_LINUX_FONT_HANDLER=1
But I don't know, I'm new to Linux and maybe I did something wrong.
On a similar computer I have with Windows it works much more smoothly.
@Lindon Nice thanks, I though it was only for compiling Hise :)
Do we need to use a some flag for exporting the plugin with this?
It works in Hise, but I'm not sure why it doesn't work in my compiled plugin.
@Morphoice said in Where is the sample folder on Standalone and VST3 build?:
I'd want to put the samples somewhere without the user having to select a folder using an installer program. has anyone done this successfully before?
Oh yeah, I do that with small libraries (less than 100MB). Just place the samples folder in Application Support/Your Company/Your Plugin, and also send the linkOSX file with the installer. The linkOSX file contains the location of the samples, such as: "Library/Application Support/Company/Plugin/Samples"
@Morphoice said in Where is the sample folder on Standalone and VST3 build?:
There is an empty Expansions and User Presets folder in there which must have been created at some point, since I didn't do it manually
If that folder has been created, it should be able to generate the linkOSX file. Something might be blocking the file creation (maybe it's specific to your computer).
@Morphoice This issue typically occurs if you're using Global App Data and the folder Library/Application Support/Your Company/Plugin Name has not been created. If you manually create the folder, it can create the file linkOSX.
Or you can use User App Data instead of Global App Data.