3 Quick Questions about Expansions!
-
@d-healey I think my HISE build might be old. It freezes at 0% no matter which expansion. It's also still asking me to set an encryption key in the script which I believe was deprecated.
I'll try a newer build.
-
Okay encoding works now! But I'm still having some issues with this whole system.
-
Is there a way to just read the samples/samplemap/images etc from the .hr1 file WITHOUT unpacking them to a "Samples" folder? I'd much rather just give users a single file download, have them point to it using a button, and have the plugin just load everything from that.
-
My current script is almost working, I think. It's unpacking the .ch1 and info.hxi into the Samples folder (which I set using a Custom Settings floatingtile). But there's no images, and when I click the button to set the active expansion, nothing loads.
I feel like I missed a step...
Export Stage:
- Export sample map as monolith. (Which is later referenced using the {EXP::Expansion}SampleMap stuff, and works fine within HISE.
- Encode the expansion pack in the Sampler Workspace, with key etc all setup.
- Export Samples for Install, with correct expansion selected, and .hxi file embedded properly.
Import Stage:
- Set Samples folder using Custom Settings floatingtile.
- Install expansion using browser and:
expHandler.installExpansionFromPackage (hr, FileSystem.Samples); expHandler.refreshExpansions();
This creates the expansion subfolder, Samples folder and unpacks the .ch1 and info.hxi properly.
- Set active expansion/load images/load samples using:
Engine.setCurrentExpansion("Bloom"); backgroundImage = ("{EXP::Bloom}bg_bloom.png"); Image_BG.setAlpha(1); Image_BG.set("fileName", backgroundImage); SamplerRR.asSampler().loadSampleMap("{EXP::Bloom}Bloom_SampleMap");
It just doesn't get to that last stage, I'm not sure why.
-
-
@iamlamprey said in 3 Quick Questions about Expansions!:
Is there a way to just read the samples/samplemap/images etc from the .hr1 file
No. The hr file is an archive that contains the samples in the .ch format, and everything else inside the hxi file. You have to extract the archive, via the installer, in order to access its contents.
I'd much rather just give users a single file download, have them point to it using a button, and have the plugin just load everything from that.
That's essentially what you do. You give them the hr file and get your plugin to unpack/install it. They will end up with multiple files but you only need to send them one.
It's unpacking the .ch1 and info.hxi into the Samples folder (which I set using a Custom Settings floatingtile). But there's no images, and when I click the button to set the active expansion, nothing loads.
Only the samples should go in the Samples folder. The hxi is the expansion and goes inside the appData/yourCompany/expansions folder. This is handled automatically by the built in installer.
- Set Samples folder using Custom Settings floatingtile.
I don't do it this way. I set the location through the install function. You can see that in my example that I posted a link to in my first post of this thread.
-
@d-healey said in 3 Quick Questions about Expansions!:
by the built in installer.
sorry the WHAT
does HISE have an installer now for stuff? as in I shouldn't be distributing .vst3 files directly?
-
@iamlamprey said in 3 Quick Questions about Expansions!:
does HISE have an installer now for stuff? as in I shouldn't be distributing .vst3 files directly?
The expansion installer - you're already using it.
expHandler.installExpansionFromPackage (hr, FileSystem.Samples);
-
@d-healey ok thank goodness I was about to absolutely freak out
-
Ok so the .hxi isn't getting copied over to the appdata folder. In fact there isn't even an expansion folder for Bloom in there at all.
Progress!
-
@iamlamprey Have you checked the box to link expansions to your project? Have you set expansion type to encrypted? Have you set an encryption key?
-
@d-healey Yes yes and yes. But I just realized I lost part of my script when HISE crashed, the allowedExpansionTypes section. Recompiling now to see if that was causing it.
-
Nope, still not loading properly.
I've noticed the compiled plugin also keeps asking me to locate samples folder every 3 seconds, so I think I'll turn those flags back on.
-
Okay so I just noticed that it's set to Encryption, but it's making a .hxi file as the metadata. Shouldn't that be a .hxp?
If i set the preferences back to Files Only I can't encode anything. How do I do the whole "intermediate" encode? Or is that what's already happening?
Edit: Okay so Encrypted mode in the settings = Intermediate encoding, and Encrypted .hxp stuff is done in the compiled plugin, so neither of these things involve my issue I think.
Is it possible that there's some sort of Windows restriction preventing me from extracting the .hxi to the appdata folder?
-
@d-healey I tried replacing my button function with yours from that thread:
reg hr; FileSystem.browse("", false, "", function(result) { hr = result; FileSystem.browseForDirectory("", function(dir) { expHandler.installExpansionFromPackage(hr, dir); }); });
The compiled plugin now crashes Ableton
-
There shouldn't be any issues specific to Windows, as far as I'm aware the process works on all 3 OS.
-
@Christoph-Hart Any idea on this one?
Inside HISE, expansions work flawlessly. But in compiled plugin, it seems like it's not extracting/installing them properly using:
expHandler.installExpansionFromPackage(hr,FileSystem.Samples);
I exported/encoded the monoliths properly (I think), embedded the .hxi file. And it extracts the samplemap.ch1 AND the info.hxi to the designated Samples folder. It also doesn't copy any files, or make any directories, in the appdata folder on Windows.
My brain hurts, been at this for hours now.
I can send the entire project if that helps, I apologize in advance for the horrible coding standards.
OK MORE PROGRESS:
If I manually copy the info.hxi over to the root folder of the instrument in appdata, Bloom appears in the dropdown list, but there's still no images or samples being loaded.
In fact manually copying the .hxi to the appdata folder rebuilds the entire expansion folder structure inside the Samples folder (but the images folder is empty).
-
I don't have time to debug this at the moment. Have you tried running it in Visual Studio's debugger to see if it reveals anything?
-
@d-healey No problem :) no i haven't yet, I suppose that's tomorrows job since it's 6am now
-
Can someone please let me know what exactly happens when using installExpansionsFromPackage? Does it rebuild the entire folder structure of the expansion in appdata? Does it rebuild it in the Samples/Expansions folder? Does it just provide the .ch1 and .hxi files?
Since mine isn't working, I'm not sure what it's even supposed to be doing to debug.
Edit: Okay it's supposed to recreate the entire folder structure in APPDATA, and the samplemaps are located in wherever the base samples folder is.
I've got it working now for FilesOnly (after manually dragging stuff around), still no idea why the encrypted one isn't rebuilding it properly.
-
@Christoph-Hart Could you pretty please take a look at this when you get the chance?
If I call expHandler.installExpansionFromPackage(exp location, samples folder), it extracts the entire .hr1 to the samples folder including the .hxi, and doesn't recreate the expansions folder structure anywhere in APPDATA.
As far as I know I did every step right, and FilesOnly expansions work properly if I manually copy them to the right locations. Just seems to affect the intermediate ones
-
@iamlamprey said in 3 Quick Questions about Expansions!:
doesn't recreate the expansions folder structure anywhere in APPDATA
That's correct. It won't recreate the folder structure because most of the data can be read from the hxi. I think it only extracts the User Presets folder.
it extracts the entire .hr1 to the samples folder
Do you mean it extracts the ch files from the hr1?
-
@d-healey said in 3 Quick Questions about Expansions!:
That's correct. It won't recreate the folder structure because most of the data can be read from the hxi. I think it only extracts the User Presets folder.
So the images etc are all stored in the hxi? Why would it extract both to the same folder?
The only way I can get the expansion even showing up in the plugin is to manually move the .hxi to the APPDATA folder. (Samples/images etc still don't load).
Do you mean it extracts the ch files from the hr1?
Yep. At this point I'm contemplating just making the expansions FilesOnly and using innosetup or something to set the folder structure up.
This same issue occured in the hise-tutorial project once I added my code.